Lea*_*RoR 106 ruby-on-rails twitter-bootstrap
我不了解Twitter Bootstrap如何为导航执行活动链接.如果我有这样的常规导航(在轨道连接上使用ruby):
<ul class="nav">
<li class="active"> <a href="/link">Link</a> </li>
<li class=""> <a href="/link">Link</a> </li>
<li class=""> <a href="/link">Link</a> </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如何根据点击的链接保持活动状态?
yor*_*rch 168
你可以使用类似的东西(非常类似于@phil提到的,但更短一些):
<ul class="nav">
<li class="<%= 'active' if current_page?(root_path) %>"><%= link_to "Home", root_path %></li>
<li class="<%= 'active' if current_page?(about_path) %>"><%= link_to "About", about_path %></li>
<li class="<%= 'active' if current_page?(contact_path) %>"><%= link_to "Contact", contact_path %></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
Pie*_*rre 94
刚刚在Twitter Bootstrap Pills with Rails 3.2.2中回答了同样的问题
<ul class="nav">
<li class="<%= 'active' if params[:controller] == 'controller1' %>"> <a href="/link">Link</a> </li>
<li class="<%= 'active' if params[:controller] == 'controller2' %>"> <a href="/link">Link</a> </li>
<li class="<%= 'active' if params[:controller] == 'controller3' %>"> <a href="/link">Link</a> </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
Hes*_*ham 47
https://github.com/twg/active_link_to
<%= active_link_to 'Users', users_path, :wrap_tag => :li %>
Run Code Online (Sandbox Code Playgroud)
#=> <li class="active"><a href="/users">Users</a></li>
Dan*_*iel 33
我使用帮助器以Rails的表单助手的方式实现它.
在帮手(例如app/helpers/ApplicationHelper.rb):
def nav_bar
content_tag(:ul, class: "nav navbar-nav") do
yield
end
end
def nav_link(text, path)
options = current_page?(path) ? { class: "active" } : {}
content_tag(:li, options) do
link_to text, path
end
end
Run Code Online (Sandbox Code Playgroud)
然后,在视图中(例如app/views/layouts/application.html.erb):
<%= nav_bar do %>
<%= nav_link 'Home', root_path %>
<%= nav_link 'Posts', posts_path %>
<%= nav_link 'Users', users_path %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
此示例生成(在"用户"页面上时):
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/posts">Posts</a></li>
<li class="active"><a href="/users">Users</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
Chr*_*ren 22
使用此选项可以在没有服务器代码的情况下根据当前路由选择导航中的活动链接:
$(document).ready(function () {
$('a[href="' + this.location.pathname + '"]').parent().addClass('active');
});
Run Code Online (Sandbox Code Playgroud)
Mel*_*emi 11
我在haml中使用逻辑和(&&)找到了成功:
%ul.nav
%li{class: current_page?(events_path) && 'active'}
= link_to "Events", events_path
%li{class: current_page?(about_path) && 'active'}
= link_to "About Us", about_path
Run Code Online (Sandbox Code Playgroud)
对于每个链接:
<% if current_page?(home_path) -%><li class="active"><% else -%><li><% end -%>
<%= link_to 'Home', home_path %>
</li>
Run Code Online (Sandbox Code Playgroud)
甚至
<li <% if current_page?(home_path) -%>class="active"<% end -%>>
<%= link_to 'Home', home_path %>
</li>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82363 次 |
| 最近记录: |