0

昨日私はfollowを使ってみました

$(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イベントが発生して新しいタブが生成されたときに、複数の同じタブが必要ないため、既に追加されている場合は同じタブを追加しないようにします。すでに追加されている場合、同じタブを避ける条件を教えてください。

4

2 に答える 2

1

すべてを同じままにしておくことができますが、1 回の呼び出し後にイベントをアンバインドする.one イベント ハンドラーに変更します。

$(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'));
    });
});
于 2013-07-10T04:43:09.710 に答える
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'));
    }
});
于 2013-07-10T04:38:03.310 に答える