2013-02-07 122 views
0

如何在最近版本的jQuery UI中通過id選擇標籤頁?我曾經這樣做:在jQuery UI 1.9+上使用隱藏標籤選擇標籤頁

$(mytabs).tabs("select", "#tab_contents"); 

而且它工作得很好,即使隱藏了一些標籤。現在我升級了jQuery UI,上面的代碼不再工作了。我想下面這個網站的一些other suggestions,並結束了與此:

$(mytabs).tabs("option", "active", $(mytabs).find("li").index("#tab_header")); 

不僅它的方式更詳細的,但它並沒有選擇正確的標籤,因爲他們中的一些是隱藏的。如何做呢?

P.S.爲了隱藏一些標籤,我使用了$("#tab_header").hide()。這在最近的版本中仍然是正確的,還是有更好的方法?

回答

3

找到了一個解決方案:

$(mytabs).tabs("option", "active", $("#tab_header").index()); 

此選擇正確的選項卡,無論哪個的有可見的(它甚至可以選擇當前不可見的選項卡 - 內容被示出,但標頭是不是)。從0

+0

更加動態:$(「[HREF ='#maintTab_ 「+ id +」']「)。index() – EllisGL

0
<div id="tabs"> 
    <ul> 
     <li id="ha"><a href="#a">A</a></li> 
     <li id="hb"><a href="#b">B</a></li> 
     <li id="hc"><a href="#c">C</a></li> 
     <li id="hd"><a href="#d">D</a></li> 
     <li id="he"><a href="#e">E</a></li> 
    </ul> 
    <div id="a">AAA</div> 
    <div id="b">BBB</div> 
    <div id="c">CCC</div> 
    <div id="d">DDD</div> 
    <div id="e">EEE</div> 
</div> 

.index開始,

$(mytabs).tabs("option", "active", $("#ha").index()); 

但如果你使用#a代替#ha使用這樣

$(mytabs).tabs("option", "active", $("#a").index()-1); 
+0

你從哪裏得到'index'從'1'開始的? [文檔](http://api.jquery.com/index/)和[此演示](http://jsfiddle.net/mgibsonbr/y4r7N/)顯示其他... – mgibsonbr

+1

mgibsonbr,你是對的我是在#div上做索引,而不是#li。顯然#div是第二個元素,索引從1開始。我的錯誤是沒有正確檢查。 –

+0

好吧,這解釋了它...... :)但是,只有內容的順序與標題的順序一致時,您的代碼才能正常工作。對於'tabs',只有標題的順序很重要。 [實施例](http://jsfiddle.net/mgibsonbr/y4r7N/1/) – mgibsonbr