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改变的对话框下面。 不好。