2012-08-31 79 views
2

在我的主页上,有用户的显示页面的链接Twitter的引导标签:进入网页加载特定标签

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

,并在用户的秀,我用引导选项卡,

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

当我点击链接时,它应该转到用户的显示页面,事件选项卡应该是foucs。 所以在JS我不喜欢这样,

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

这个js代码的用户重定向到show页面,但该事件片未设定焦点。 我不知道我在想什么。帮我!

+0

你不能简单的在另一个从一个页面执行的JavaScript。检查这些问题:**重复:http://stackoverflow.com/a/10120221/1478467**,种类相同:http://stackoverflow.com/q/7862233/1478467 – Sherbrow

回答

2

当您重定向到另一个页面时,选项卡列表正在刷新。您需要将逻辑设置为只在当前页面的选项卡上有class="active",或者您需要使用tab-content方法,并将所有页面加载到单独的内容div中,因此选项卡实际上不会离开页面他们只是改变显示哪个<div>

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

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