タブ コンテナーに次の Dijit タブがあるとします。
tab_1
tab_dave
tab_2
tab_3
...
tab_n
以外のすべてのタブを閉じるにはどうすればよいtab_dave
ですか?
タブ コンテナーに次の Dijit タブがあるとします。
tab_1
tab_dave
tab_2
tab_3
...
tab_n
以外のすべてのタブを閉じるにはどうすればよいtab_dave
ですか?
これを行う 1 つの方法は、特定の名前または ID を持たないものを削除して、すべての子をループすることです。
function closeAllBut(containerId, tabId)
{
var tc = dijit.byId(containerId),
tabs = tc.getChildren();
for(var i = 0; i < tabs.length; i++)
{
if(tabs[i].id != tabId) tc.removeChild(tabs[i]);
}
}
かなり遅いようですが、もっときれいな方法があればいいのですが(だから私の答えを受け入れないでください!:))
Dojoでクエリを実行するにはdojo.query http://dojotoolkit.org/reference-guide/1.10/dojo/query.htmlを確認してください
要素の型やクラス名などをクエリし、2 番目のパラメータを指定します
dojo.forEach(dojo.query(".tabs", "containerId"),
function(closeTab) {
//doStuff
}
);
ただし、多くのタブがある場合は、tabContainer 全体を破棄 (再帰) し、1 つの要素だけで新しいものを作成できます。