我必须销毁我创建的dijit和dojox小部件吗?

我必须销毁我创建的dijit和dojox小部件吗?,dojo,Dojo,当我创建一个新的dijit/dojox小部件时,让我们假设一个按钮,执行以下操作: new Button({...}, "domId"); 假设我将我的新按钮添加到一个选项卡面板,用户在某个点关闭该选项卡。我有责任破坏按钮吗 dojox的小部件呢 像对话框这样的组件呢?(在jquery UI中,您必须销毁小部件和用于创建它的dom) 感谢大家的帮助。任何构建的小部件都将被放置在dijit.registry中,并在卸载时消失 如果您有一个小部件被构造了不止一次,比如说如果您正在进行Content

当我创建一个新的dijit/dojox小部件时,让我们假设一个按钮,执行以下操作:

new Button({...}, "domId");
假设我将我的新按钮添加到一个选项卡面板,用户在某个点关闭该选项卡。我有责任破坏按钮吗

dojox的小部件呢

像对话框这样的组件呢?(在jquery UI中,您必须销毁小部件和用于创建它的dom)


感谢大家的帮助。

任何构建的小部件都将被放置在dijit.registry中,并在卸载时消失

如果您有一个小部件被构造了不止一次,比如说如果您正在进行ContentPane ajax加载布局,那么您应该在卸载ContentPane之前销毁任何创建的小部件。即,放置在contentpane的DOM下的小部件。。例如,如果你有一个侧边栏菜单,不要每次都破坏并重新创建它:)

如果您使用ContentPane的任何扩展,并且将dojo标记设置为其内容,那么解析器将负责自动注册和卸载小部件

答案是这样的;不完全是。。但是,您不应该破坏作为小部件“实现”的DOMNode,也不应该删除其中的任何内部子级。而是调用
dijit.byId('widgetId')
从注册表中取出小部件,然后调用
widget.destroy()


如果它是一个dojox或一个对话框或其他东西,它都是一样的。它们通过dijit进行扩展。_Widget
具有相同的基础api-至少90%的dojox模块都有。

我有一个侧栏菜单。所以,我想我可以调用myContentPane.destroy()。这样,我可以保留容器,但销毁其中的所有小部件。谢谢。