javascriptjqueryhtmlcssjquery-ui

jQuery UI 1.10: dialog and zIndex option


I have to make an dialog to apear when an image onclick. The problem is that I have some realy big z-index there (500 for example) and the ui dialog is on the back of that elements.

Here is the page, you need to log in, user: "raducup" and pass:"1". Another problem is that when I click close ont the dialog, the object desapears.

This is the function I call when a image is click:

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();
}

Solution

  • You don't tell it, but you are using jQuery UI 1.10.

    In jQuery UI 1.10 the zIndex option is removed:

    Removed zIndex option

    Similar to the stack option, the zIndex option is unnecessary with a proper stacking implementation. The z-index is defined in CSS and stacking is now controlled by ensuring the focused dialog is the last "stacking" element in its parent.

    you have to use pure css to set the dialog "on the top":

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

    you need the key !important to override the default styling of the element; this affects all your dialogs if you need to set it only for a dialog use the dialogClass option and style it.

    If you need a modal dialog set the modal: true option see the docs:

    If set to true, the dialog will have modal behavior; other items on the page will be disabled, i.e., cannot be interacted with. Modal dialogs create an overlay below the dialog but above other page elements.

    You need to set the modal overlay with an higher z-index to do so use:

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

    for this element too.