关闭Dojo中的所有模态对话框

时间:2008-12-04 19:38:16

标签: dojo dialog modal-dialog

有人知道如何关闭Dojo创建的所有模态对话框吗?显然以前有一个dojo.popup.closeAll函数,但在Spring JS附带的最新版本的Dojo API中不再可用。

5 个答案:

答案 0 :(得分:3)

那是对的....那个方法不再存在的原因是从1.0开始弹出弹出窗口的人负责关闭它。这是我所做的架构改变。

大多数小部件(如菜单)在模糊时监控,然后关闭子弹出窗口。因此,您可以通过将焦点切换到文档本身或某个随机节点来获得所需的效果。当然这是一种解决方法。

比尔

答案 1 :(得分:3)

这将在页面中找到所有文字对话框并隐藏它们:

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

答案 2 :(得分:1)

现在唯一有效的方法是跟踪你的对话框,并在需要时使用hide()关闭它们。

答案 3 :(得分:0)

我不知道这是否有用,但我倾向于每个页面只使用一个对话框(因为它是模态的)。所有对话框的内容都是来自服务器的xhrGot,我在页面的生命周期中花费整个dojo时间一次又一次地回收相同的对话框,只是更改其属性:href及其title。我发现它的工作原理与几个对话框一样。

答案 4 :(得分:0)

道场> = 1.10:

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

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