【问题标题】:Selecting Tabs by id on jQuery UI 1.9+ with hidden tabs在带有隐藏选项卡的 jQuery UI 1.9+ 上按 id 选择选项卡
【发布时间】:2013-01-22 22:33:13
【问题描述】:

如何在最新版本的 jQuery UI 中按 id 选择选项卡?我曾经这样做过:

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

即使隐藏了一些选项卡,它也能正常工作。现在我升级了 jQuery UI,上面的代码不再工作了。我尝试在这个网站上关注一些other suggestions,结果是这样的:

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

它不仅更加冗长,而且没有选择正确的选项卡,因为其中一些选项卡是隐藏的。怎么办?

附:为了隐藏一些标签,我使用了$("#tab_header").hide()。这在最近的版本中是否仍然正确,还是有更好的方法?

【问题讨论】:

    标签: jquery-ui jquery-ui-tabs hidden


    【解决方案1】:

    找到了解决办法:

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

    这会选择正确的选项卡,无论哪些选项卡可见(甚至可以选择当前不可见的选项卡 - 显示内容,但不显示标题)。

    【讨论】:

    • 更动态一点:$("[href='#maintTab_" + id + "']").index()
    【解决方案2】:
    <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>
    

    .index0开始,

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

    但如果您使用 #a 而不是 #ha,请像这样使用

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

    【讨论】:

    • 你从哪里得知index1 开始的? The docsthis demo 否则显示...
    • mgibsonbr,你是对的,我在#div 上做索引,而不是#li。显然 #div 是第二个元素,索引从 1 开始。我不正确检查不好。
    • 好的,这就解释了...... :) 但是,您的代码只有在内容的顺序与标题的顺序一致时才有效。对于tabs,只有标题的顺序很重要。 Example
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多