我正在运行一个需要关闭Dojo对话框的函数(如果已加载)。如何检查dojo对话框是否正在运行?如果未定义,我是否使用纯JavaScript并按ID检查?
if (dijit.byId("blah") !== undefined) {
destroyRecursive dijit;
}
或者我使用对话框对象的属性,如:
isFocusable method
isLoaded property
答案 0 :(得分:4)
Dialog provides two properties您可能需要查看:isLoaded
和open
。通过挖掘代码,您将找到以下描述:
所以,你可以:
var dialog = dijit.byId("blah");
if( dialog.open ) {
dialog.destroy();
}
答案 1 :(得分:1)
你想隐藏它还是摧毁它?
如果您只想显示/隐藏它,您可以执行以下操作:
var dialog = dijit.byId('blah');
if (dialog) {
if (dialog.open) {
dialog.hide();
}
else {
dialog.show();
}
}
如果你想破坏它以释放记忆:
var dialog = dijit.byId('blah');
dialog.destory();
我认为destroy
是递归的,因为它调用其父destroy
方法,其中一个父项为dijit.layout.ContentPane
。