jquery-ui 1.9 タブのアップグレード ガイドによると - 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 タブ: フラグメント識別子の不一致。
私の理解が正しければ、このエラーは、実際のタブ パネルが作成されていないことを意味します (したがって、ナビゲーション パネルとタブ パネルの間に不一致があります)。しかし、アップグレード ガイドには、タブ パネルの作成については言及されていません。
そのため、私のやり方が間違っているか、アップグレード ガイドが不完全であると想定しています。どうか明らかにしてください。
興味深いことに、タブを削除する場合、アップグレード ガイドには、ナビゲーション パネルからリスト項目とタブ パネルの両方を明示的に削除する必要があると記載されているため、タブの追加にも同じことが当てはまるかどうか疑問に思っています。