嵌套Dojo.Dialog的问题

时间:2011-03-16 00:43:33

标签: dojo modal-dialog

我的网页上有两个“嵌套”或“级联”对话框(一个对话框打开另一个对话框),我在尝试关闭“最顶层”对话框时遇到问题。

以下是该方案:

  1. 对话框1已打开
  2. 对话框2从对话框1
  3. 内的按钮打开
  4. 单击按钮时,对话框2将关闭,其代码如下:

    dialog2.hide();
    dialog2.destroyRecursive();

  5. 出现问题。

  6. '问题'被定义为'模态'(如,对话框是模态的)在对话框2中丢失(意味着您现在可以与对话框1交互),并且对于对话框1而丢失;这意味着您可以与对话框1进行交互对话框后面的页面),但对话框1 仍然存在

    有趣的是,当您使用右上角的 X 关闭对话框时,此问题无法显示。是否有更好的*关闭对话框的方法?

    编辑:我正在使用dojo 1.5

1 个答案:

答案 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的最后。看看它是否被隐藏。