我怎么可以检查看看是否一场对话是装?
-
18-09-2019 - |
题
我正在运行的功能,需要关闭一场对话,如果它加载。我如何检查,如果一场对话是在跑?我是使用纯JavaScript和检查由id如果它是不确定?
if (dijit.byId("blah") !== undefined) {
destroyRecursive dijit;
}
或者我使用一种性对话的对象,如:
isFocusable method
isLoaded property
解决方案
对话提供了两种特性 你也许想检查: isLoaded
和 open
.通过挖掘的代码,你会找到以下说明:
- 开放:真的,如果对话是目前显示在屏幕上。
- 加载:如果ContentPane有数据,或规定在初始化(通过href或内联的内容),或设置经attr('content',...)/attr('href',...)假如果它不具有任何内容,或者如果ContentPane仍然是进程中的下载href。
所以,你可能只是:
var dialog = dijit.byId("blah");
if( dialog.open ) {
dialog.destroy();
}
其他提示
你想隐藏或破坏它?
如果你只是想显示/隐藏它,你可以做到以下几点:
var dialog = dijit.byId('blah');
if (dialog) {
if (dialog.open) {
dialog.hide();
}
else {
dialog.show();
}
}
如果你想destory它以释放内存:
var dialog = dijit.byId('blah');
dialog.destory();
我认为destroy
是递归的,因为它要求其父destroy
方法及其亲本之一是dijit.layout.ContentPane
。
不隶属于 StackOverflow