我的网页上有两个“嵌套”或“级联”对话框(一个对话框打开另一个对话框),我在尝试关闭“最顶层”对话框时遇到问题。
以下是该方案:
单击按钮时,对话框2将关闭,其代码如下:
dialog2.hide();
dialog2.destroyRecursive();
出现问题。
'问题'被定义为'模态'(如,对话框是模态的)在对话框2中丢失(意味着您现在可以与对话框1交互),并且对于对话框1而丢失;这意味着您可以与对话框1进行交互对话框后面的页面),但对话框1 仍然存在。
有趣的是,当您使用右上角的 X 关闭对话框时,此问题无法显示。是否有更好的*关闭对话框的方法?
编辑:我正在使用dojo 1.5
答案 0 :(得分:1)
我有嵌套的对话框,没有1.5的概率。
尝试跳过destroyRecursive()
来电或将其更改为destroy()
以查看是否存在任何差异。
另外,您是否在点击处理程序中调用了hide()
?尝试设置一个计时器,在处理程序返回后调用hide()
。我记得在处理程序中调用hide
对话框有时会搞砸了。
你的意思是“失去模态”,真正发生的是对话框底层被隐藏了。底层是与班级dijit.DialogUnderlay
相关联的DIV(好的,div中的div),div通常显示在dijig.Dialog.show
上,并在hide
时隐藏。 div覆盖了整个屏幕区域,这就是提供“模态”的方式。
您还应该进入自己喜欢的Web开发人员工具(Firebug或WebKit / IE的开发工具)来检查这个底层div。它应该在你body
的最后。看看它是否被隐藏。