我使用框架ExtJS创建了2个这样的面板(我知道它不是最好的方式):
var panel = Ext.create("Ext.panel.Panel", {
title: "first panel",
width: 400,
height: 250,
renderTo: Ext.getBody(),
html: "test 1"
});
panel = Ext.create("Ext.panel.Panel", {
title: "second panel",
width: 400,
height: 250,
renderTo: Ext.getBody(),
html: "test 2"
});
现在我的浏览器中有2个面板。现在,如果我这样做:
panel.destroy();
它只摧毁了最后一个。 所以我的问题是:我怎么能破坏第一个面板?是否有一个方法包含浏览器中的所有面板?我是否存储了ID'面板每次都是为了以后销毁它们?...
答案 0 :(得分:2)
试试这个:
var objArray = Ext.ComponentQuery.query("Ext.panel.Panel");
objArray
包含所有面板对象。
现在运行for
循环并销毁所有对象。
答案 1 :(得分:1)
如果你为它们设置了不同的变量(或你管理的数组),你可以单独销毁它们:
var panel1 = Ext.create("Ext.panel.Panel", {
...
});
var panel2 = Ext.create("Ext.panel.Panel", {
...
});
panel1.destroy();
panel2.destroy();
或者这个:
var panels = [];
var panels[0] = Ext.create("Ext.panel.Panel", {
...
});
var panels[1] = Ext.create("Ext.panel.Panel", {
...
});
for (var i=0; i<panels.length; i++)
{
panels[i].destroy();
}