有人知道如何关闭 Dojo 创建的所有模式对话框吗?显然曾经有一个 dojo.popup.closeAll 函数,但是在 Spring JS 附带的最新版本的 Dojo API 中不再可用。
Alex Marshall
问问题
2437 次
5 回答
3
没错....该方法不再存在的原因是从 1.0 开始,打开弹出窗口的人负责关闭它。这是我所做的架构更改。
大多数小部件(如菜单)在它们被模糊时进行监控,然后关闭它们的子弹出窗口。因此,您可以通过将焦点切换到文档本身或某个随机节点来获得所需的效果。当然,这是一种解决方法。
账单
于 2008-12-09T09:47:26.897 回答
3
这将找到页面中的所有文字对话框并隐藏它们:
dijit.registry.filter(function(w){
return w && w.declaredClass == "dijit.Dialog"
}).forEach(function(w){
w.hide();
});
于 2008-12-27T13:17:31.593 回答
1
现在看来,唯一有效的方法是跟踪您的对话框并在需要时使用 hide() 将它们全部关闭。
于 2008-12-05T16:00:53.697 回答
0
我不知道这是否有用,但我倾向于为每个页面只使用一个对话框(因为它是模态的)。所有对话框的内容都是来自服务器的 xhrGot,我在页面的生命周期内花费了整个 dojo 时间,一次又一次地回收同一个对话框,只是改变了它的属性:它的href
和它的title
. 我发现这和有几个对话框一样有效。
于 2009-02-19T07:00:55.870 回答
0
道场 >= 1.10:
define(['dijit/registry'], ...
registery.toArray().filter(function(w){
return w && w.declaredClass == "dijit.Dialog"
}).forEach(function(w){
w.hide();
});
于 2015-07-09T12:55:26.840 回答