В соответствии с руководством по обновлению для jquery-ui 1.9 tabs - http://jqueryui.com/upgrade-guide/1.9/#deprecated-add-and-remove-methods-and-events-use-refresh-method - при динамическом добавлении новых вкладок вам нужно только сделать что-то вроде этого:
HTML:
<div id='tabs'>
<ul>
<li><a href='#tab1'>#1</a></li>
</ul>
<div id='tab1'></div>
</div>
<button id='add-tab'>Add tab</button>
JavaScript:
$(document).ready(function() {
$("div#tabs").tabs();
$("button#add-tab").click(function() {
var num_tabs = $("div#tabs ul li").length + 1;
$("div#tabs ul").append(
"<li><a href='#tab" + num_tabs + "'>#" + num_tabs + "</a></li>"
);
$("div#tabs").tabs("refresh");
});
});
Однако, когда я пытаюсь изменить между вновь созданными вкладками, я получаю следующую ошибку в firebug:
jQuery UI Tabs: Несоответствие идентификатора фрагмента.
Если я правильно понимаю, эта ошибка означает, что фактическая панель вкладок не создается (и, следовательно, существует несоответствие между панелью навигации и панелью вкладок). Но руководство по обновлению не упоминает о создании панели вкладок.
Поэтому я предполагаю, что либо я делаю это неправильно, либо руководство по обновлению является неполным. Просьба уточнить.
Интересно, что при удалении вкладок руководство по обновлению говорит, что вы должны явно удалять элемент списка с панели навигации, а также панель вкладок явно, поэтому мне интересно, то же самое относится к добавлению вкладок.