jQuery UIを使用してタブセットを作成しようとしています。特別なタブは一時的に追加されます。フォームに含まれているフォームが送信されると、タブは削除されます。動的に追加されたjQuery-uiタブの内容は1回だけ表示されます
ただし、タブを削除した後、後で再追加するとコンテンツが表示されず、その理由がわかりません。私はそれをthis jsFiddle exampleに蒸留しました。コードも以下に転載しました。
HTML:
<div id="tabs">
<ul>
<li><a href="#foo">Foo</a></li>
</ul>
<div id="foo">
<h2>Foo Tab</h2>
</div>
<div id="bar" class="transient" style="display: none">
<h2><button type="button" class="close" style="float: right"><span class="ui-icon ui-icon-closethick">close</span></button>Bar Tab</h2>
</div>
<div id="baz" class="transient" style="display: none">
<h2><button type="button" class="close" style="float: right"><span class="ui-icon ui-icon-closethick">close</span></button>Baz Tab</h2>
</div>
</div>
<hr>
<button onClick="openTransientTab('bar', 'Bar')">Add Bar Tab</button>
<button onClick="openTransientTab('baz', 'Baz')">Add Baz Tab</button>
のJavaScript:ページをロードすると
$('#tabs').find('div.transient').find(".close").live('click', function() {
var footer_tabs = $('#tabs');
var tab_id = $(this).closest("div.transient").attr("id");
var index = footer_tabs.tabs("option", "selected");
footer_tabs.tabs("select", -1);
footer_tabs.tabs("remove", index);
});
function openTransientTab(id, title) {
var footer_tabs = $("#tabs");
footer_tabs.tabs("select", -1);
footer_tabs.tabs("select", "#" + id);
var selected = footer_tabs.tabs("option", "selected");
if (selected < 0) {
footer_tabs.tabs("add", "#" + id, title);
footer_tabs.tabs("select", "#" + id);
}
$("#" + id).css("display", "block");
}
$(function() {
var footer_tabs = $("#tabs");
footer_tabs.tabs({
collapsible: true,
selected: -1
});
});
私はタブの内容を保存するために少しよりよい方法を見つけましたが、あなたは間違いなく正しい方向 –
よしに私を指摘しました。私はあまりにもjQueryを使用していないが、私は助けることができてうれしい。 – Collecter