2008-12-04 53 views

回答

3

這是正確的......方法不存在的原因是,從1.0開始,彈出一個彈出窗口的人負責關閉它。這是我做的架構改變。

大部分窗口小部件(如菜單)在模糊時監視,然後關閉其子窗口。因此,通過將焦點切換到文檔本身或某個隨機節點,您可能可以獲得所需的效果。當然這是一種解決方法。

比爾

+0

確定。不幸的是,這確實不利於我的情況,但那不是你的錯。謝謝你的回答,非常感謝。 – 2008-12-11 02:46:03

1

看來現在唯一有效的方法是跟蹤對話並在需要時使用hide()關閉它們。

3

這將找到頁面中所有文字對話框,並隱藏他們:

dijit.registry.filter(function(w){ 
    return w && w.declaredClass == "dijit.Dialog" 
}).forEach(function(w){ 
    w.hide(); 
}); 
+0

當我看着這個,它說'過濾器'是未定義的。這有沒有變化? – streetlight 2014-07-11 12:48:14

0

我不知道這是什麼用途,但我傾向於使用只有一個對話每頁(因爲它是模態)。所有對話框的內容都來自服務器的xhrGot,並且我將整個dojo時間花費在一個頁面的生命週期內,一次又一次地在同一個對話框中回收,只是改變它的屬性:href及其title。我覺得這個工作,以及有幾個對話框。

0

道場> = 1.10:

define(['dijit/registry'], ... 

registery.toArray().filter(function(w){ 
    return w && w.declaredClass == "dijit.Dialog" 
}).forEach(function(w){ 
    w.hide(); 
});