如何从选项卡视图中删除所有选项卡
How to remove all tabs from TabView?
我有一个简单的代码可以从 TabView 中删除所有选项卡,但正如您所看到的,一些选项卡仍然存在。所以我需要有关如何正确删除所有选项卡的建议。
游乐场示例 http://tinyurl.com/k33r6nz
或者也许更好的是重新创建一个 TabView,不是吗?
代码的问题在于修改了要迭代的数组:
var pages=container.getChildren();
for(var i=0;i<pages.length;i++){
container.remove(pages[i]);
}
pages
是对.remove()
操作修改的数组的引用。因此,当删除页面[0]时,页面数组中的所有元素都会向左移动。页面[1]变成了页面[0],下一轮访问页面[1]就是过去的页面[2]。因此,所有其他元素都被跳过。你最好创建一个数组的副本,比如
var pages=qx.lang.Array.clone(container.getChildren());
...
它有效。pages.length 表达式不再是问题,因为迭代目标不会在循环中修改。我认为这也比总是删除页面[0](如问题评论中所建议的那样)更干净。下面是代码的略微修改版本:http://tinyurl.com/lexwry5
至于重新创建 TabView,通常最好保留现有的小部件并在可能的情况下重用它们,而不是销毁和重新创建它们。
不是一次删除一个页面,而是可以通过调用 _removeAll() 方法一次删除所有页面。链接到代码 http://tinyurl.com/pa6ct7r
可能有点晚了,但由于pages
是一个参考,你也可以迭代它一段时间:
var pages = container.getChildren();
while (pages.length > 0) {
container.remove(pages[0]);
}
相关文章:
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- 从“新建”选项卡中的“访问次数最多”部分删除网站
- 带有预览和删除选项的图像上传-Javascript/Jquery
- jQuery-检测选择对象是否添加或删除了选项
- 从dojo comboBox中删除选项
- 选择选项是添加或删除事件
- 删除“;选择“;从下拉菜单的选项中选择
- 使用JavaScript删除多个select选项
- 如何使用jstree删除上下文菜单中的编辑选项
- 从选项选择中删除值
- 在 IE 中从 DOM 中删除选项时,滚动选择元素会跳到顶部
- 多个<选择>使用选择,选项删除(已选择)
- jquery mobile;选择“;确实't附加或删除“t”;选项”;
- 使用jquery如何自动删除下拉列表中的第一个空白选项(如果它依赖于另一个选项)
- 使用ng重复或ng选项和删除空白选项选择长方体角度
- 删除基于先前下拉列表选择的“选择下拉列表”选项
- 如何从选择 jsp 上的映射中删除选项
- Magento网站-按选项排序:上下箭头与排序数据绑定,只需删除上下箭头即可
- 如何使用fine Uploader通过删除选项将上传的文件名传递到服务器端
- 选择选项删除功能