2013-07-10 73 views
0

昨天我嘗試使用遵循如何添加動態標籤上按一下按鈕,但只有一次

$(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事件火災產生一個新的標籤,我不想多相同的選項卡,所以如果它已經添加,則希望避免添加相同的選項卡。 如果已經添加,請建議我避免同一個標籤的任何條件?

回答

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')); 
    } 
}); 
+0

如何。一是後解除綁定的事件? – mplungjan

+0

是的,OP可以使用它,如果'tabs'只創建一次''。 –

+0

是的,工作正常, – AloNE

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')); 
    }); 
}); 
相關問題