Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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(); } 
like image 934
raducup Avatar asked Jun 04 '13 12:06

raducup


2 Answers

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.

like image 170
Irvin Dominin Avatar answered Oct 10 '22 10:10

Irvin Dominin


You may want to try jQuery dialog method:

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

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

like image 38
Alain Gauthier Avatar answered Oct 10 '22 12:10

Alain Gauthier