【问题标题】:Dojo multiple non-modal dialogs with dropdownbuttonDojo 多个带有下拉按钮的非模态对话框
【发布时间】:2014-01-22 15:52:55
【问题描述】:

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

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

Here is the JSFiddle。重现...

  1. 在“I”下显示两个对话框
  2. 再次点击“我”

“我”现在会闪烁。有时,如果您在两个对话框都显示的情况下单击“B”,它将自行修复。如果两个对话框都关闭,问题将得到解决。

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

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

【问题讨论】:

  • 必须是特定于浏览器的问题,对我来说在 chrome 上运行良好。我看到的唯一问题是 x 在模块上的位置
  • @tik27 我有 Chrome 32.0.1700.76,我确实看到了奇怪的位置,但仍然有同样的问题。

标签: javascript dialog dojo


【解决方案1】:

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

这里的问题是,Dojo Dialogs 尽最大努力让自己保持专注,以至于当他们失去注意力时,他们会再次对自己调用 .focus() (See dijit/Dialog.js)。

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

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

【讨论】:

  • 感谢您的回答,即使迟到了:)
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多