2013-02-21 84 views
0

我已經看到了高和低的答案。我遇到的問題是我的選項卡有一定的樣式特徵需要保持不變。以下是我的工作頁面:鏈接到特定的jquery選項卡

http://nextadagency.com/theta/services.html

我試圖創建鏈接(在單獨的頁面),每個選項卡。加載「服務」頁面時,請加載選定的選項卡,在頂部有一個唯一的#地址,並加載到頁面的頂部。出於某種原因,當我以前嘗試鏈接到特定的選項卡時,它會根據選項卡在不同區域加載頁面。

回答

0

爲了避免默認哈希行爲(頁面跳轉),我使用了一個URL參數。在你的情況,這將導致,例如,http://nextadagency.com/theta/services.html?tab=3

$(function() { 
    // update URL parameter and browser history on manual tab select 
    $('#tabs').bind('tabsselect', function(event, ui) { 
     var myTab = $(ui.tab).attr('href').replace('#', ''); 
     var myParam = '?tab=' + myTab; 
     window.history.pushState('Object', 'Title', myParam); 
    }); 

    // get 'tab' URL parameter and select tab 
    var param = $(document).getUrlParam('activity'); 
    $('#tabs').tabs('select', param); 
    }); 

這可能是矯枉過正你,但至少你需要停止默認哈希行爲,可能與preventDefault()。當你去像

$('#tabs').tabs({ 
    selected: $('#tabs > ul > li > a[href='+window.location.hash+']').index() 
}); 

然後:

http://nextadagency.com/theta/services.html#tabs1

它會加載具有標籤

+0

我該如何將這個結合到我當前的頁面編碼中? – user2096415 2013-02-21 18:16:58

+0

如果你看看我原來的服務頁面鏈接,你會看到我把你的編碼合併到部分,還有什麼需要做的?謝謝 – user2096415 2013-02-21 19:33:01

+0

由於我寫了這個答案,我意識到我沒有提到必須包含兩個文件來處理URL參數。因此,這個答案可能不適合你。 – isherwood 2013-02-21 20:36:04

0

您可以使用URL#(井)和標籤selected選項...

您也可以每次更改制表符時將散列添加到url:

$('#tabs').tabs({ 
    select: function(e, ui){ 
     window.location.hash = $(ui.tab).attr('href').replace(/\#/, ''); 
    } 
}); 
+0

我該如何將這個結合到我當前的頁面編碼中? – user2096415 2013-02-21 18:38:23

+1

你的頁面已經有了一些啓動標籤的代碼,比如'$('#tabs')。tabs({...})'。你只需要添加'selected:$('#tabs> ul> li> a [href ='+ window.location.hash +']')。index()'到那個方法調用中,就像我上面的例子。 – UpHelix 2013-02-21 18:52:47

相關問題