无法使用模态对话框打开辅助对话框

时间:2008-09-16 21:24:21

标签: javascript jquery-ui z-index jquery-ui-dialog yui

我有一个modal dialog形式,其中有一些“帮助链接”,它应该打开其上的其他非模态面板或对话框(同时保持主对话框,否则模态)。

然而,这些总是最终落后于面具。 YUI似乎正在识别那里最高的z-index并将掩码和模态对话框设置为高于此值。

如果我等待对帮助内容进行面板化,那么我可以将其设置为具有更高的z-index。到现在为止还挺好。那么问题是辅助非模态对话框中的字段是不可聚焦的。它们下面的模态对话框似乎在某种程度上阻止了焦点转到最初的模态对话框中的任何内容。

如果我能用jQuery做这个“对话组模态”,如果YUI根本不允许这样做也是可以接受的。

帮助!

2 个答案:

答案 0 :(得分:4)

默认情况下,YUI管理任何扩展YAHOO.widget.Overlay并使用覆盖面板的z-index。它是通过YAHOO.widget.Overlay的“bringToTop”方法完成的。您可以通过简单地将“bringToTop”方法更改为空函数来关闭它:

YAHOO.widget.Overlay.prototype.bringToTop = function() { };

该代码会将其关闭并且您可以将它放在container.js文件的底部。我觉得这种方法有点过于大锤的方法,所以我们扩展了YUI类并在调用“super.constuctor”后写道:

this.bringToTop = function() { };

如果你这样做,你基本上告诉YUI你将自己管理元素的z-indices。这可能很好,但在做之前需要考虑。

答案 1 :(得分:0)

如果用户应该与其他元素交互,则原始对话框不能是模态的 - 这是模态的定义。原始对话框真的是否需要模态化?如果是这样,您是否尝试在打开其他元素之前切换原始对话框的模态属性?