Rails Bootstrap带有订购的Active类

时间:2015-04-03 16:41:30

标签: javascript jquery ruby-on-rails twitter-bootstrap

我正在尝试将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

1 个答案:

答案 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>