使用dropdown按钮Dojo多个非模态对话框

时间:2014-01-22 15:52:55

标签: javascript dialog dojo

我正在尝试使用dijit/Dialog在我的页面上设置多个对话框。我希望对话框是非模态的,所以我使用this question作为指导来摆脱背景底层。

然而,当我使用DropDownButton切换窗口时,我会发现奇怪的行为。当一个对话框显示一切正常时。当两个对话框都显示时,下拉按钮会在点击时闪烁显示/隐藏,而不是隐藏

Here is the JSFiddle。重现......

  1. 在“我”
  2. 下显示两个对话框
  3. 再次点击“我”
  4. “我”现在会闪烁。有时,如果你点击“B”,两个对话框都显示它会自行修复。如果两个对话框都已关闭,则问题将得到解决。

    我认为它与对话框的z-index有关,但是DropDownButton似乎总是具有比底衬和对话本身更高的z-index。

    另一种选择是制作我自己的FloatingPane,但我想知道这是否可行。

1 个答案:

答案 0 :(得分:2)

可能会有点晚,但可以帮助其他人。

这里的问题是Dojo对话会尽最大努力让自己保持专注,当他们失去焦点时,他们会再次呼叫.focus()See dijit/Dialog.js)。

据我所知,没有设置可以禁用它。但是,您始终可以覆盖非模态对话框的.focus()函数,而不执行任何操作。如,

var dialog = registry.byId("myDialog");
dialog.focus = function() { };
dialog.show();