Reputation: 311
yesterday I am try using 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'));
});
});
But using above code,when onclick event fire generate a new tab,I dont want multiple same tab,so I want avoid adding a same tab if it already added. Please suggest me any condition to avoiding a same tab if already added ?
Upvotes: 0
Views: 238
Reputation: 2562
You can keep everything the same but change to the .one event handler, which unbinds the event after one call
$(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'));
});
});
Upvotes: 1
Reputation: 40639
Try this,
$('#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'));
}
});
Upvotes: 0