0

假设我在选项卡容器中有以下 Dijit 选项卡:

tab_1
tab_dave
tab_2
tab_3
...
tab_n

我怎么能关闭除 之外的所有选项卡tab_dave

4

2 回答 2

3

一种方法是遍历所有子节点,删除没有特定名称或 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查询

查询元素类型或类名等,提供第二个参数

dojo.forEach(dojo.query(".tabs", "containerId"), 
    function(closeTab) {
        //doStuff
    }
);

但是,如果有很多选项卡,您可以销毁(递归)整个 tabContainer 并构建一个只有 1 个元素的新选项卡。

于 2015-06-08T22:33:02.267 回答