【发布时间】:2013-02-23 22:51:16
【问题描述】:
我有一个窗口,closeAction 在实例化时配置为'hide':
var myWin = Ext.create('Ext.window.Window', {
...
closeAction:'hide',
...
});
在myWin 上调用close() 因此只是隐藏了窗口。正如 Sencha 文档所暗示的那样,我需要销毁destroy 意义上的窗口:
从 DOM 中移除窗口并销毁它和所有后代 成分。该窗口将无法通过 显示方法。
我尝试了什么?我尝试了:
-
直接在窗口对象上调用
destroy:myWin.destroy(); -
在调用
close()之前将closeAction设置为destroy:win.closeAction='destroy'; win.close();
在这两种情况下,myWin 只是被隐藏而不是被破坏。有什么想法吗?
【问题讨论】:
-
使用
destroy(),它被完美摧毁:jsfiddle.net/5BcBd/1。 -
@VisioN 感谢您的评论。您如何检查它是简单隐藏还是实际销毁?就我而言,我能够重新显示窗口,这就是为什么我确定它是隐藏的而不是被破坏的。
-
我已经更新了上面评论中的小提琴,以便在删除前后显示
body的内容。通常,您可以为此使用 Chrome DevTools 或 Firebug。在destroy()的情况下,DOM 结构被移除,如果你之后尝试调用show(),JS 将引发错误。 -
确实你是对的;请将此添加为答案,明确说明我在我的问题中对
destroy()的断言是不正确的 - 我会将您的答案标记为正确答案。谢谢!
标签: javascript extjs extjs4.1