На самом деле есть пример для достижения этого на демонстрационных страницах jQuery ui tabs .
Используйте свойство tabTemplate
:
HTML-шаблон изкоторый новая вкладка создается и добавляется.Заполнители # {href} и # {label} заменяются метками url и tab, которые передаются в качестве аргументов методу add
Вот код с сайта:
var $tabs = $( "#tabs").tabs({
tabTemplate: "<li><a href='#{href}'>#{label}</a> <span class='ui-icon ui-icon-close'>Remove Tab</span></li>",
add: function( event, ui ) {
var tab_content = $tab_content_input.val() || "Tab " + tab_counter + " content.";
$( ui.panel ).append( "<p>" + tab_content + "</p>" );
}
});
// close icon: removing the tab on click
// note: closable tabs gonna be an option in the future - see http://dev.jqueryui.com/ticket/3924
$( "#tabs span.ui-icon-close" ).live( "click", function() {
var index = $( "li", $tabs ).index( $( this ).parent() );
$tabs.tabs( "remove", index );
});
В вашей реализации вы не должны использовать .live()
, но делегат () или on () .Что-то вроде:
$('#tabs').on('click', 'span.ui-icon-close', function() {
var index = $( "li", $tabs ).index( $( this ).parent() );
$tabs.tabs( "remove", index );
});