jQuery UI 1.10:对话框和zIndex选项

当一个图像点击时,我必须做一个对话框。 问题是,我有一些真正的大Z指数(例如500),UI对话框是在这些元素的背面。

这里是页面,你需要login,用户:“raducup”,并通过:“1”。 另一个问题是,当我点击closures对话框,对象desapears。

这是我点击图片时调用的函数:

function openItem(obiect){ $( obiect ).css('zIndex',9999); $( obiect ).dialog({ dialogClass: "no-close", modal: true, draggable: true, overlay: "background-color: red; opacity: 0.5", buttons: [ { text: "OK", click: function() { $( this ).dialog( "close" ); } } ] }); reparaZindex(); } 

你不告诉它,但你使用的是jQuery UI 1.10。

在jQuery UI 1.10中, zIndex选项被删除:

删除了zIndex选项

与堆栈选项类似,zIndex选项对于正确的堆栈实现是不必要的。 z-index是在CSS中定义的,现在通过确保聚焦的对话框是其父代中最后一个“堆叠”元素来控制堆叠。

你必须使用纯CSS来设置对话框“顶部”:

 .ui-dialog { z-index: 1000 !important ;} 

你需要键!important是覆盖元素的默认样式; 这会影响你所有的对话框,如果你只需要为对话框设置它,使用dialogClass选项和样式。

如果你需要一个modal dialog设置modal: true选项,请参阅文档 :

如果设置为true,对话框将具有模态行为; 页面上的其他项目将被禁用,即不能与之交互。 模式对话框在对话框下方但在其他页面元素上方创build叠加层。

您需要使用更高的z-index设置模态叠加,以便使用:

 .ui-front { z-index: 1000 !important; } 

这个元素也是。

join你的CSS:

  .ui-dialog { z-index: 1000 !important ;} 

你可能想尝试jQuery对话框方法:

 $( ".selector" ).dialog( "moveToTop" ); 

参考: http : //api.jqueryui.com/dialog/#method-moveToTop

在调用对话框之前添加

 $( obiect ).css('zIndex',9999); 

并删除

  zIndex: 700, 

从对话框

这里有很多的build议,但据我所见,jQuery UI们目前已经打破了对话控制。

我这样说是因为我在页面上包含了一个对话,而它的半透明和模态消隐div是在其他一些元素的后面。 这不可能是正确的!

最后基于其他一些职位我开发了这个全球性的解决scheme,作为对话部件的扩展。 它适用于我,但我不确定如果我在对话中打开对话会怎么做。

基本上它会寻找页面上所有其他的zIndex,并将.ui-widget-overlay移动到一个更高的位置,而对话本身就会高出一个。

 $.widget("ui.dialog", $.ui.dialog, { open: function () { var $dialog = $(this.element[0]); var maxZ = 0; $('*').each(function () { var thisZ = $(this).css('zIndex'); thisZ = (thisZ === 'auto' ? (Number(maxZ) + 1) : thisZ); if (thisZ > maxZ) maxZ = thisZ; }); $(".ui-widget-overlay").css("zIndex", (maxZ + 1)); $dialog.parent().css("zIndex", (maxZ + 2)); return this._super(); } }); 

由于以下,因为这是从哪里得到了如何做到这一点的信息: https : //stackoverflow.com/a/20942857

http://learn.jquery.com/jquery-ui/widget-factory/extending-widgets/

zIndex属性添加到对话框对象:

 $(elm).dialog( zIndex: 10000 ); 

moveToTop是正确的方法。

z-Index是不正确的。 它起初可以工作,但是多个对话框将继续浮动在你用z-index改变的对话框下面。 不好。