2013-02-07 120 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