触发选项卡激活功能 - JQuery UI选项卡

时间:2013-07-31 10:28:03

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

我遇到了问题。

HTML代码段如下所示

<div id="mainTab">
    <ul>
        <li><a href='#tabs-1'>TabGroup1</a></li>
        <li><a href='#tabs-2'>TabGroup2</a></li>            
    </ul>
    <div id='tabs-1'>
        <a onclick="showSubTab1Tab2();">showSubTab1Tab2</a>
        <a onclick="showSubTab2Tab2();>showSubTab2Tab2</a>
    </div>
    <div id='tabs-2'>
        <!-- First Sub Tab -->
        <div id="subTab1">
            <ul>
                <li><a href='#tabs-3'>TabGroup3</a></li>
                <li><a href='#tabs-4'>TabGroup4</a></li>            
            </ul>
            <div id='tabs-3'>

            </div>
            <div id='tabs-4'>

            </div>
        </div>
        <!-- Second Sub Tab -->
        <div id="subTab2">
            <ul>
                <li><a href='#tabs-5'>TabGroup5</a></li>
                <li><a href='#tabs-6'>TabGroup6</a></li>            
            </ul>
            <div id='tabs-5'>

            </div>
            <div id='tabs-6'>

            </div>
        </div>
    </div>
</div>

javascript看起来像这样。我正在使用JQuery UI 1.10.3

$("#mainTab").tabs();

$( "#subTab1" ).tabs({
    activate: function( event, ui ) {
        // Update Some Logs
    }
});

$( "#subTab2" ).tabs({
    activate: function( event, ui ) {
        // Update Some Logs
    }
});

function showSubTab1Tab2() {
    $("#mainTab").tabs( "option", "active", 1);
    $( "#subTab1" ).tabs( "option", "active", 1);
}

function showSubTab2Tab2() {
    $("#mainTab").tabs( "option", "active", 1);
    $( "#subTab2" ).tabs( "option", "active", 1);
}

如果用户点击“showSubTab2Tab2”。我改变了主要标签。将用户带到第二个选项卡。然后激活subTab2的第二个选项卡,如果该选项卡以前未激活,则激活第二个选项卡并触发激活事件

现在问题就在于此。如果用户执行了两次,那么第二次激活事件不会被触发。我需要该事件来记录/填充前端的一些代码。

我不能在我的功能中这样做。

2 个答案:

答案 0 :(得分:-1)

如果您尝试检查先前在showSubTab1Tab2()

中的状态

http://jsfiddle.net/S4nua/1/

答案 1 :(得分:-1)

尝试使用此代替“标签”代码。每次显示标签时都会触发:

$('a[href="#subTab2"]').on('shown', function () {
        ---- your code here ----
  });