jQueryUI选项卡禁用方法不起作用:禁用所有选项卡时不应该

时间:2015-06-04 19:34:36

标签: javascript jquery jquery-ui jquery-tabs

当我调用disable方法时,所有jQueryUI选项卡都被禁用,包括我从索引数组中省略的那个(索引1)。这是一个示例:

<div id="tabs">
  <ul>
    <li><a href="#tabs1">one</a></li>
    <li><a href="#tabs2">two</a></li>
    <li><a href="#tabs3">three</a></li>
    <li><a href="#tabs4">four</a></li>
    <li><a href="#tabs5">five</a></li>
  </ul>

  <div id="tabs1" style="display: none;"><p>tab 1 content</p></div>
  <div id="tabs2" style="display: none;"><p>tab 2 content</p></div>
  <div id="tabs3" style="display: none;"><p>tab 3 content</p></div>
  <div id="tabs4" style="display: none;"><p>tab 4 content</p></div>
  <div id="tabs5" style="display: none;"><p>tab 5 content</p></div>
</div>

<script>
    function disableAllExcept1(){
        $('#tabs').tabs('option', 'disabled', [0,2,3,4,5]);
        $('#tabs').tabs('option', 'active', 1);
    }

    $(function() {
        $( "#tabs" ).tabs();
        disableAllExcept1();
    });
</script>

为什么禁用标签2(索引1)?

1 个答案:

答案 0 :(得分:0)

问题是数组中的额外索引。我删除了一个标签,但没有从数组中删除索引(5)。这种行为看起来很奇怪,甚至可能是马车。我希望它只是忽略额外的索引或发出警告或错误。

此:

$('#tabs').tabs('option', 'disabled', [0,2,3,4,5]);

应该是这样的:

$('#tabs').tabs('option', 'disabled', [0,2,3,4]);

这是一个证明问题的jsfiddle:http://jsfiddle.net/spencerw/hmno6ekb/

相关问题