如何在按钮单击上添加动态选项卡但仅一次

时间:2013-07-10 04:30:34

标签: javascript jquery html

昨天我尝试使用关注

$(document).ready(function() {
        var tabs = $("#container-1").tabs();
            var tabCounter = 1;

        $('#add_tab').click( function(){
            var ul = tabs.find( "ul" );
            $( "<li><a href='#fragment-4'>Call Detials</a></li>" ).appendTo( ul );
            tabs.tabs( "refresh" );
            tabs.tabs('select', 1);
            tabs.append( $('#fragment-4'));
        });
  });

但是使用上面的代码,当onclick事件触发生成一个新选项卡时,我不想要多个相同的选项卡,所以我想避免添加相同的选项卡(如果已添加)。 如果已添加,请建议我避免使用相同标签的任何条件?

2 个答案:

答案 0 :(得分:1)

您可以保持一切相同,但更改为.one event handler,这会在一次通话后取消绑定事件

$(document).ready(function() {
    var tabs = $("#container-1").tabs();
        var tabCounter = 1;

    $('#add_tab').one('click', function(){
        var ul = tabs.find( "ul" );
        $( "<li><a href='#fragment-4'>Call Detials</a></li>" ).appendTo( ul );
        tabs.tabs( "refresh" );
        tabs.tabs('select', 1);
        tabs.append( $('#fragment-4'));
    });
});

答案 1 :(得分:0)

试试这个,

$('#add_tab').click( function(){
    var ul = tabs.find( "ul" );
    var flag=true;
    $(ul).find('li').each(function(){
        if($(this).text()=='Call Detials')
        {
            // to prevent from creating a new tab under ul
            flag=false;
        }
    });
    if(flag)//if true then create the tab Call Details
    {
        $( "<li><a href='#fragment-4'>Call Detials</a></li>" ).appendTo( ul );
        tabs.tabs( "refresh" );
        tabs.tabs('select', 1);
        tabs.append( $('#fragment-4'));
    }
});