如何在jquery-ui 1.9中以编程方式更改选项卡?

时间:2013-03-08 21:57:01

标签: javascript jquery jquery-ui tabs

如何使用jquery-ui 1.9以编程方式更改标签?

注意:发布答案,因为我花了4次以上的搜索才能在stackoverflow上找到正确的答案。它出现在1.9中,API已更改,在早期版本中,您将使用$("#tabs").tabs("select", 2)

<script>
    $(document).ready(function() {
      $("#tabs").tabs();

      // assume you want to change to the 3rd tab after 3 seconds
      setTimeout(function() {
         // ???
      }, 3000);
    });
</script>

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Tab 1</a></li>
        <li><a href="#tabs-2">Tab 2</a></li>
        <li><a href="#tabs-3">Tab 3</a></li>
    </ul>

    <div id="tabs-1"><p>Container 1</p></div>
    <div id="tabs-2"><p>Container 2</p></div>
    <div id="tabs-3"><p>Container 3</p></div>
</div>

4 个答案:

答案 0 :(得分:43)

select方法为deprecated since 1.9,且为removed in 1.10。请改用active选项。

示例(jsfiddle也提供):

<script>
    $(document).ready(function() {
      $("#tabs").tabs();

      // assume you want to change to the 3rd tab after 3 seconds
      setTimeout(function() {
          $("#tabs").tabs("option", "active", 2);
      }, 3000);
    });
</script>

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Tab 1</a></li>
        <li><a href="#tabs-2">Tab 2</a></li>
        <li><a href="#tabs-3">Tab 3</a></li>
    </ul>

    <div id="tabs-1"><p>Container 1</p></div>
    <div id="tabs-2"><p>Container 2</p></div>
    <div id="tabs-3"><p>Container 3</p></div>
</div>

答案 1 :(得分:7)

根据id的选择非常简单,因为上面指定的Sonjz ...但根据tabId的选择比较棘手..我只是想分享它以防任何人需要

var index = $('#tabs a[href="#tab_id"]').parent().index();
$("#tabs").tabs("option", "active", index);

答案 2 :(得分:5)

试试这个

$('#tabs a[href="#tabs-2"]').tab('show')

此处#tabs-2表示您要切换的标签。

感谢。

答案 3 :(得分:1)

如果在标签列表元素中添加ID,则可以使用jQuery click()方法模拟点击。

例如,单击选项卡外部的按钮时,以下内容将激活tab2:

<div id="tabs">
  <ul>
    <li><a href="#tabs-1" id="th1">Tab 1</a></li>
    <li><a href="#tabs-2" id="th2">Tab 2</a></li>
    <li><a href="#tabs-3" id="th3">Tab 3</a></li>
  </ul>

  <div id="tabs-1"><p>Container 1</p></div>
  <div id="tabs-2"><p>Container 2</p></div>
  <div id="tabs-3"><p>Container 3</p></div>
</div>
<button id="btn">Click to activate Tab 2</button>
<script>
$("#tabs").tabs();
$('#btn').click(function() {$('#th2').click()});
</script>