Twitter Bootstrap选项卡:转到页面加载上的特定选项卡

时间:2012-08-31 12:21:49

标签: ruby-on-rails-3 tabs twitter-bootstrap focus

在我的主页上,有一个指向用户显示页面的链接

<a id="event_shortcut" href="http://localhost:3000/users/1#event_tab">show events</a>

在用户的节目中,我使用了bootstrap tab,

<ul id="user_show_tabs">
    <li >
        <a href="#profile_tab">Profile</a>
    </li>
    <li>
        <a href="#event_tab">Events</a>
    </li>
    <li class="active">
        <a href="#account_tab">Account</a>
    </li>
</ul>

当我点击链接时,它应该转到用户的显示页面,而事件选项卡应该是有效的。 所以在js中我确实喜欢这个,

$("#event_shortcut").live("click", function(event){
    event.preventDefault(); 
    window.location = $(this).attr("href"); 
    $('#user_show_tabs a[href="#event_tab"]').tab('show');
});

此js代码将用户重定向到显示页面,但事件选项卡未设置焦点。 我不知道我错过了什么。救救我!

2 个答案:

答案 0 :(得分:2)

当您重定向到另一个页面时,选项卡列表会刷新。您需要输入逻辑以仅在当前页面的选项卡上具有class="active",或者您需要使用tab-content方法并将所有页面加载到单独的内容div中,因此标签实际上并没有离开他们刚刚更改的页面<div>正在显示。

查看Bootstrap的Javascript部分以获取有关如何执行此操作的更多信息。 http://twitter.github.com/bootstrap/javascript.html#tabs

答案 1 :(得分:0)

视图中的

(这是haml)

%ul
  li{:class => "#{check_if_active('release')}"
    = link_to "release", part_release_path(@current_organisation, @part)

和帮助

def check_if_active(tab)
  case params[:controller]
  when "parts"
    if ['release'].include?(params[:action])
      tab == "properties" ? "active" : "null"
    end
end