2014-10-27 14 views
2

我使用的是現有的jQuery UI選項卡動態添加..標籤不工作的時候使用jQuery

<div id="tabs"> 
    <ul> 
     <li><a href="#tabs-1">title 1</a></li> 
     <li><a href="#tabs-2">title 2</a></li> 
     <li><a href="#tabs-3">title 3</a></li> 
    </ul> 
    <div id="tabs-1"> 
     <p>t1 content</p> 
    </div> 
    <div id="tabs-2"> 
     <p>t2 content</p> 
    </div> 
    <div id="tabs-3"> 
     <p>t3 content</p> 
    </div> 
</div>  

when rendered in the browser, jquery adds some set of classes to the <li> elements. [some part of it given below] 

<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" role="tablist"> 
     <li class="ui-state-default ui-corner-top ui-tabs-active ui-state-active" role="tab" tabindex="0" aria-controls="tabs-1" aria-labelledby="ui-id-1" aria-selected="true" aria-expanded="true"> 
     <li class="ui-state-default ui-corner-top" role="tab" tabindex="-1" aria-controls="tabs-2" aria-labelledby="ui-id-2" aria-selected="false" aria-expanded="false"> 
     <li class="ui-state-default ui-corner-top" role="tab" tabindex="-1" aria-controls="tabs-3" aria-labelledby="ui-id-3" aria-selected="false" aria-expanded="false"> 
</ul> 


when I append some <li> elements in <ul> using the following jquery code: 

$('#tabs ul').append($('<li><a href="#tabs-4">title 4</a></li>'); 

列表將追加但是類不會添加到它,因此沒有表現出標籤功能。

請給予一些見解。

回答

2

您還需要與標籤ID添加的div:

var num_tabs = $('div#tabs ul li.tab').length + 1;   
    $('div#tabs ul').append(
     '<li class="tab"><a href="#tab-' + num_tabs + '">Section ' + num_tabs + '</a></li>'); 

    $('div#tabs').append(
     '<div id="tab-' + num_tabs + '"></div>'); 

然後嘗試tabs刷新:

$("div#tabs").tabs("refresh"); 

WORKING Fiddle

+0

都能跟得上。它不工作!實際上我有一個按鈕 ...以及下面的jquery函數... $(document).on('click','#buttonId',function(){ $( '#tabs ul')。append($('

  • add me
  • ')); $(「div#tabs」)。tabs(「refresh」); }); – rsa 2014-10-27 11:47:18

    +0

    @rsa查看我的編輯。 – ltalhouarne 2014-10-27 11:53:28

    +0

    謝謝!有用。我使用load()來追加標籤,但是我沒有在回調方法中刷新它們。 – rsa 2014-10-28 05:26:01