【问题标题】:change li class if page is active如果页面处于活动状态,则更改 li 类
【发布时间】:2014-10-02 17:17:52
【问题描述】:

如果页面处于活动状态,我想在 rails 中更改 li 元素的类。我做了一个应用程序助手,但代码不起作用。如果我将代码放在元素之外,它确实有效。 (在 p 个标签内说)

我的应用程序帮助文件如下所示:

  def activepage(path)
    ' class="active"' if current_page?(path)
  end

这就是侧边栏部分的外观:

    <li<%= activepage(root_path) %>>
        <a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
    </li>

如果我加载页面,似乎 li 不会被创建。知道为什么以及解决此问题的最优雅方法是什么吗?

谢谢!

【问题讨论】:

  • 如果&lt;li&gt; 甚至没有进入结果视图,问题就在它之外。
  • 知道为什么我在这里标签为 jQuery 吗?
  • 也许我可以使用 jquery 解决它?如果没有,我会删除它。

标签: jquery html css ruby-on-rails ruby-on-rails-4


【解决方案1】:

尝试通过将视图代码更改为来调试问题:

<li <%= current_page?(root_path) ? "class=active" : "class=not-active" %>>
    <a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
</li>

如果current_page?(root_path) 为true,则li 类将处于活动状态,如果current_page?(root_path) 为false,则该类将不活动。

如果 current_page?(root_path) 返回 false,那么这就是你的问题,class="active" 将永远不会被添加。

【讨论】:

    【解决方案2】:

    " >

    请将 ruby​​ 代码放在引号内。 还要确保辅助方法按预期返回值。

    还可以尝试查看生成的 html 代码,使用 firebug 或检查它。

    【讨论】:

      【解决方案3】:

      我通过将助手放在 class="helper" 中来修复它。

      <li class="<%= activepage(root_path) %>">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-16
        • 2017-06-08
        • 1970-01-01
        • 1970-01-01
        • 2017-12-25
        • 1970-01-01
        • 1970-01-01
        • 2014-10-12
        相关资源
        最近更新 更多