0

タブ コンテナーに次の Dijit タブがあるとします。

tab_1
tab_dave
tab_2
tab_3
...
tab_n

以外のすべてのタブを閉じるにはどうすればよいtab_daveですか?

4

2 に答える 2

3

これを行う 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]);
    }
}

かなり遅いようですが、もっときれいな方法があればいいのですが(だから私の答えを受け入れないでください!:))

于 2012-06-08T14:15:11.863 に答える
2

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 つの要素だけで新しいものを作成できます。

于 2015-06-08T22:33:02.267 に答える