2012-08-31 118 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