使用 ExtJs 4.1
有没有办法查询所有浮动组件(窗口、消息框等)?
我的目标是移除(摧毁)所有漂浮的物体。第一手“获得”它们就足够了。
好吧,只需使用默认情况下负责所有浮动组件的Ext.WindowManager 即可。
以下应该工作:
Ext.WindowManager.each(function(cmp) { cmp.destroy(); });
这是一个示例JSFiddle:
Ext.create('Ext.window.Window', {
title: 'Hello',
height: 200,
width: 400,
layout: 'fit',
items: { // Let's put an empty grid in just to illustrate fit layout
xtype: 'grid',
border: false,
columns: [{header: 'World'}], // One header just for show. There's no data,
store: Ext.create('Ext.data.ArrayStore', {}) // A dummy empty data store
}
}).show();
Ext.Function.defer(function(){Ext.WindowManager.each(function(cmp) { cmp.destroy(); })}, 5000);
进一步阅读DOM-Query
编辑 仅销毁定义的类型
对于这种情况,请使用组件的 xtype 并检查它。
Ext.WindowManager.each(function(cmp) { if (cmp.xtype === 'window') cmp.destroy(); });