I'm creating a web-application in which user adds a tab and put his content. This tabs are dynamically created. I searched for it on google and tried for given solutions but none of them worked for me. So i posted a question here.
My code is:
<div id="tabs" class="htabs">
<a href="#tab-general"><?php echo $tab_general; ?></a>
<a onclick="addtab();" id="add-tab"><?php echo $add_tab; ?></a>
</div>
And script is :-
<script type="text/javascript">
$('#tabs a').tabs();
var tab_count = '<?php echo $tab_count; ?>';
function addtab(){
var html = '';
$('#add-tab').before('<a href="#product-tab-'+tab_count+'" class="nearest">Tab '+tab_count+'</a>');
html += '<div id="product-tab-'+tab_count+'" class="nthDiv">';
html += '<table class="form">'
html += '<tr>';
html += '<td>';
html += 'Name'+tab_count;
html += '</td>';
html += '<td>';
html += '<input type="text">';
html += '</td>';
html += '</tr>';
html += '</table>';
html += '</div>';
$('#form').append(html);
$('#tabs a').tabs("refresh");
//$('#tabs a').tabs( "option", "selected", -1 ); tried but doesn't work
//$('#tabs a').tabs("option", "active", -1); tried but doesn't work
tab_count++;
}
</script>
My jquery version is jquery-1.7.1.min.js
and jquery ui version is 1.8
.
The problem is the new tab is not get active/selected. I have to manually click on that tab to make it active.
Your markup for the tabs is wrong
$('#tabs').tabs({
beforeActivate: function(e, ui) {
return ui.newTab.find('#add-tab').length == 0;
}
});
var tab_count = 1;
$('#add-tab').click(function() {
var html = '';
$('#add-tab').parent().before('<li><a href="#product-tab-' + tab_count + '" class="nearest">Tab ' + tab_count + '</a></li>');
html += '<div id="product-tab-' + tab_count + '" class="nthDiv">';
html += '<table class="form">'
html += '<tr>';
html += '<td>';
html += 'Name' + tab_count;
html += '</td>';
html += '<td>';
html += '<input type="text">';
html += '</td>';
html += '</tr>';
html += '</table>';
html += '</div>';
$('#tabs').append(html);
$('#tabs').tabs("refresh").tabs("option", "active", -2);
tab_count++;
})
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/redmond/jquery-ui.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script>
<div id="tabs" class="htabs">
<ul>
<li><a href="#tab-general">Gen</a></li>
<li><a href="#" id="add-tab">Add</a></li>
</ul>
<div id="tab-general">
tab-general
</div>
</div>
</div>