【问题标题】:tab not working when dynamically added using jquery使用 jquery 动态添加时选项卡不起作用
【发布时间】:2014-12-22 13:47:22
【问题描述】:

我正在使用现有的 jquery UI 选项卡..

 <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>');

列表被追加,但类未添加到其中,因此不显示选项卡功能。

请提供一些见解。

【问题讨论】:

    标签: jquery-ui html-lists jquery-ui-tabs jquery-append


    【解决方案1】:

    您还需要添加带有标签 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

    【讨论】:

    • 不。它不工作!实际上我有一个按钮 ...和以下jquery函数...$(document).on('click', '#buttonId', function () { $('#tabs ul').append($('
    • 加我
    • ')); $("div#tabs").tabs("refresh"); });
  • 谢谢!有用。我使用 load() 附加选项卡,但我未能在回调方法中刷新它们。
  • 太棒了! “刷新”是我所缺少的。谢谢@Italhouarne!
  • @AmiSchreiber 我的荣幸!
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签