我正在運行需要關閉Dojo對話框的函數(如果它已加載)。如何檢查dojo對話框是否正在運行?我是否使用純JavaScript並通過ID檢查它是否未定義?如何檢查Dojo對話框是否已加載?
if (dijit.byId("blah") !== undefined) {
destroyRecursive dijit;
}
還是我喜歡使用對話框對象的屬性:
isFocusable method
isLoaded property
我正在運行需要關閉Dojo對話框的函數(如果它已加載)。如何檢查dojo對話框是否正在運行?我是否使用純JavaScript並通過ID檢查它是否未定義?如何檢查Dojo對話框是否已加載?
if (dijit.byId("blah") !== undefined) {
destroyRecursive dijit;
}
還是我喜歡使用對話框對象的屬性:
isFocusable method
isLoaded property
Dialog provides two properties你可能要檢查:isLoaded
和open
。通過挖掘代碼,您可以找到以下說明:
所以,你可以只:
var dialog = dijit.byId("blah");
if(dialog.open) {
dialog.destroy();
}
8年後,您應該使用if(dialog && dialog.open)或其他安全檢查'dialog'exists('typeof(dialog)!='undefined' ','dialog!= null'等)。 – Daevin 2017-07-06 14:33:51
你想隱藏或銷燬呢?
如果你只是想顯示/隱藏它,你可以做到以下幾點:
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
。
這是最終的功能: 功能bufferAddress(XCOORD,YCOORD){ 如果(dijit.byId( 「selectLocationDlg」)==未定義!){ dijit.byId(「selectLocationDlg」)。destroyRecursive(); } //這裏的其他一些代碼 } – 2009-07-21 18:03:43