我正在尝试将bootstrap活动类实现到我的导航链接,但目前它不能用于我在rails中的订购。当被点击的链接与当前URL匹配时,应该应用该类。
这是设置订购时的URL
http://localhost:3000/posts?order=hot
但它实际上并没有应用活动类,因为我猜它是'?'这打破了它。
var url = window.location;
// Will only work if string in href matches with location
$('.sorting ul li a[href="'+ url +'"]').parent().addClass('active');
此代码似乎不适用于'?'。从这个问题here
答案 0 :(得分:1)
当您重新加载整个页面时(如评论中所述),您可以完全跳过Javascript,并在视图中执行某些操作(HAML示例,如果您需要ERB示例,请告诉我);
%li
%a{href: '#', class: "#{'active' if params[:order] == 'hot'}"}
Link text here
这将从网址中读取GET参数(?order=
),然后将active
类添加到此a
标记,如果它设置为hot
。< / p>
Bootstrap文档中的Javascript示例是在动态更新内容时如何执行此操作。
修改:这是未经测试的ERB版本;
<li>
<a href="#" class="<%= if params[:order] == 'hot' %>active<% end %>">
Link text here
</a>
</li>