代码之家  ›  专栏  ›  技术社区  ›  ivanchain

为什么jQuery UI 1.10删除jQuery对话框zIndex选项?

  •  18
  • ivanchain  · 技术社区  · 12 年前

    我发现最新版本的jQuery UI(1.10)删除了 zIndex 选项这在jQuery网站上得到了证实。

    这真的让我很震惊。请考虑一下:

    当我们有一个jqgrid,并且使用 editrow() addrow() 打开一个编辑对话框来编辑某些内容,其中有许多字段,其中一些字段具有自定义事件,例如,当您单击它时,它将显示另一个jQuery对话框,以显示一些要选择的树视图项。

    在jQuery UI 1.9(包括在内)下,您可以设置jQuery对话框的 z索引 选项大于jqgrid编辑对话框的(jqgrid编辑对话框支持集 z索引 ),所以jQuery对话框总是打开的,并且可以被看到和使用。

    在jQuery UI 1.10下,您无法设置 z索引 ,所以jQuery对话框总是在jqgrid编辑对话框后面。

    我认为这样的场景很常见。

    为什么jQuery UI 1.10删除jQuery对话框 z索引 选项如何控制 z-index 有多个对话框时的顺序?

    6 回复  |  直到 12 年前
        1
  •  26
  •   BONER DAN    12 年前

    我想我理解你的问题。jQuery UI对话框的CSS z索引不够高,无法始终显示在内容上方。这里有一个快速解决方案:

    /* A class used by the jQuery UI CSS framework for their dialogs. */
    .ui-front {
        z-index:1000000 !important; /* The default is 100. !important overrides the default. */
    }
    
        2
  •  6
  •   Community CDub    4 年前

    只需从中读取更改日志 jQuery UI 1.10 (与 the bug 已申请):

    删除了zIndex选项

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

    换句话说:您应该对元素进行属性堆栈,而不是使用zIndex选项“破解”您的堆栈方式。

        3
  •  2
  •   Robin Tang    10 年前

    如果您想在实例化对话框后立即使用jQuery应用zIndex,可以执行以下操作:

    $('#element').dialog({ your options... }).parent('.ui-dialog').css('zIndex',9999);
    
        4
  •  0
  •   Dan Stotmeister    12 年前

    您尝试过使用“appendTo”选项吗?只需动态添加一个包装器,该包装器具有所需的z索引,然后使用该元素的id作为“appendTo”参数中的选择器。

    http://api.jqueryui.com/dialog/#option-appendTo

        5
  •  0
  •   Alain Gauthier    10 年前

    你试过了吗?

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

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

        6
  •  -2
  •   Ben    10 年前
     $('#element').dialog({     modal: true,
                                stack: false,
                                zIndex: 9999,
    ...
    

    为我工作