ExtJs - 如何删除所有浮动组件

时间:2012-11-28 14:22:00

标签: extjs extjs4.1

使用ExtJs 4.1

有没有办法查询所有浮动组件(窗口,消息框等)?

我的目标是移除(破坏)所有浮动物体。只要第一手“获取”就足够了。

1 个答案:

答案 0 :(得分:4)

简单地使用 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(); });