Jquery 如何更改Rails中菜单项的类
我有一个带有菜单导航的布局。我正在使用我在网上找到的模板。每个菜单项都有一个HTML页面,每个对应页面的li项类称为“selected”。看起来是这样的:Jquery 如何更改Rails中菜单项的类,jquery,ruby,ruby-on-rails-3,Jquery,Ruby,Ruby On Rails 3,我有一个带有菜单导航的布局。我正在使用我在网上找到的模板。每个菜单项都有一个HTML页面,每个对应页面的li项类称为“selected”。看起来是这样的: <nav> <ul class="sf-menu" id="nav"> <li class="selected"><%= link_to "home", root_path %></li> <li><%= link_to "abo
<nav>
<ul class="sf-menu" id="nav">
<li class="selected"><%= link_to "home", root_path %></li>
<li><%= link_to "about me", about_path %></li>
<li><%= link_to "my portfolio" %>
<ul style="z-index: 2;">
<li style="z-index: 2;"><%= link_to "portfolio one", portfolio_one_path %></li>
<li style="z-index: 2;"><%= link_to "portfolio two", portfolio_two_path %></li>
<li style="z-index: 2;"><%= link_to "portfolio three", portfolio_three_path %></li>
</ul>
</li>
<li><%= link_to "blog", blog_path %></li>
<li><%= link_to "contact", contact_path %></li>
</ul>
</nav>
-
这是在我的
application.html.erb
文件中。我的问题是如何根据用户单击的链接以编程方式将每个li项的类更改为“selected”?这可以用Ruby完成吗?或者我需要使用JavaScript吗?我想你需要当前页面?
助手方法-
...
我想你应该做以下事情:
<%= link_to "portfolio one", portfolio_one_path, class: current_page?(products_path) ? "selected" : "not_selected" %>
对于链接,您的视图可以在参数散列中使用控制器和操作名称。因此,如果这些是不同的操作/控制器,您可以执行以下操作:
<li class=<%= "selected" if params[:controller] == 'portfolio' && params[:action] == 'action_name' %>><%= link_to "portfolio one", portfolio_one_path %></li>
我个人不太喜欢这种方法,并直接将其保留在我的观点中。通常,我会将逻辑推送到助手中并使用它们。
<li class=<%= "selected" if params[:controller] == 'portfolio' && params[:action] == 'action_name' %>><%= link_to "portfolio one", portfolio_one_path %></li>