2010-03-31 442 views
8

JQuery UI選項卡由無序列表中的命名錨實現。當你將鼠標懸停在某個選項卡,你可以在瀏覽器的底部顯示的鏈接看到:JQuery UI選項卡:如何直接導航到其他頁面的選項卡?

http://mysite/product/3/#orders 

上面會例如,在「命令」選項卡。 JQuery顯然攔截了對這個錨點的點擊並且打開了標籤。

但是,如果我爲上面的鏈接添加書籤或從網站中的其他位置鏈接到該鏈接,則該頁面不會在特定選項卡上打開。

在標籤初始化塊中,我正在考慮放入一些代碼,在URL中尋找一個命名錨點,如果找到,就對這些標籤執行索引查找並調用它的選擇。這意味着它仍然可以在JS關閉的情況下工作。

但是有沒有更簡單/更好/更好的方法?

+0

的JS標籤控件不會與JS工作打開的,因爲它做到這一點所有js – hunter 2010-03-31 17:15:53

+0

有趣 - 1.3.2。已經意味着升級一段時間,但我要通過「不破壞不修復它」的政策。聽起來像我有一個很好的理由現在升級(雖然我不期望重新測試) – 2010-03-31 17:16:34

+0

@Hunter - 沒有標籤不會工作,但行爲仍然是正確的。如果JS關閉,鏈接會將您帶到頁面的正確部分。 – 2010-03-31 17:17:35

回答

9

發現這個例子here

if(document.location.hash!='') { 
    //get the index from URL hash 
    tabSelect = document.location.hash.substr(1,document.location.hash.length); 
    $("#my-tabs").tabs('select',tabSelect-1); 
} 
+0

完美,我已經把它包裝在一個輔助函數中,並從標籤控件的加載事件中調用它,這要感謝 – 2010-03-31 17:31:55

+1

這個不做的一件事是在標籤之間保留哈希信息。因此,如果我從同一頁面內的www.page.com#1到www.page.com#2,它將不會更改標籤頁。 – 2011-08-19 23:19:51

+0

@Zach - 你去年在哪裏? – hunter 2011-08-22 02:25:33

3

在1.8之前的jQuery UI版本(不包括),這幾乎是你將不得不這樣做。標籤擴展(AFAIK)不知道要根據哪個錨進行初始化(當頁面加載時)來切換,因此您必須手動執行該位(當然在就緒事件中)。

由於another answer表示,新版本的jQuery UI 1.8 supports bookmarking out of the box中的標籤。

+0

謝謝,只是想確保我沒有失去任何明顯的東西。必須是常見的要求 – 2010-03-31 17:13:25

+0

FWIW他們在jQuery UI站點上的演示似乎在錨點上正確初始化。 – R0MANARMY 2010-03-31 17:15:39

+0

@ R0MANARMY - 我建議你添加一個答案,說「這在最新版本中的作品」。我可以標記你然後 – 2010-03-31 17:18:34

5

作爲版本1.8的jQuery UI支持此功能。看到這裏例如:

  1. Second tab active by default
  2. Third tab active by default
+0

謝謝,暫時與穩定的版本一起,但我會升級當我可以 – 2010-03-31 17:32:24

+0

順便說一下,jQueryUI 1.8是目前的穩定版本(請參閱* *關於jQuery UI 1.7 * *)。 http://blog.jqueryui.com/2010/03/jquery-ui-18/ – R0MANARMY 2010-03-31 18:37:13

+0

很奇怪,他們還沒有更新頭版呢:最新(1.8:jQuery 1.4+)穩定版(1.7.2:jQuery 1.3+ ) - 我正在使用jquery 1.3,所以我會同時升級兩者。 – 2010-03-31 18:46:31

0

我使用Session插件在自定義選項卡類

相關問題