2011-12-02 9 views
5

Tengo un cuadro de diálogo que muestra una tabla, y cuando hago clic en un botón "Eliminar", voy a abrir otro cuadro de diálogo para pedir confirmación. Actualmente esto funciona bien por primera vez, pero si hago clic en el botón "Eliminar" por segunda vez, se muestra el cuadro de diálogo Eliminar detrás del primer cuadro de diálogo, por lo que en realidad es invisible para el usuario.jquery ui - Nested Dialog z-index issues

Me trataron de establecer el índice z para ambos de diálogo, pero no sé por qué sólo se está trabajando en la primera vez

A continuación se presenta la muestra de mi guión:

// The 1st dialog 
    var $detaildialog = $('#tableplaceholder').dialog({ 
     autoOpen: false, 
     modal: true, 
     width: '800', 
     height: 'auto' 

    }); 
    // Some steps to set the url.. then open the dialog 
    $detaildialog.load(url, function() { 

      $('#loading').hide(); 
      $detaildialog.dialog('open'); 
     }); 

    // Then, when delete action is called, open the second dialog 
    fnOnDeleting: function (tr, id, fnDeleteRow) { 
      var $dialog = $('#checkdeletedialog').dialog({ 
       autoOpen: false, 
       modal: true, 
       title: 'Delete Confirmation', 
       zIndex: 90000 
      }); 
      $dialog.dialog('open'); 
     } 

¿Algo que estoy haciendo mal aquí?

agradecería cualquier ayuda .. gracias :)

Respuesta

6

Establecer la propiedad "pila" de la segunda diálogo para cierto.

function (tr, id, fnDeleteRow) { 
     var $dialog = $('#checkdeletedialog').dialog({ 
      autoOpen: false, 
      modal: true, 
      stack: true, 
      title: 'Delete Confirmation' 
     }); 
     $dialog.dialog('open'); 
    } 

Más información here.

EDIT: También hemos tenido problemas con los diálogos modales que se comportan de manera extraña después de abrir una vez. Descubrimos que 'destruir' el diálogo cuando se cierra soluciona el problema, p.

var $dialog = $('#checkdeletedialog').dialog({ 
     autoOpen: false, 
     modal: true, 
     stack: true, 
     title: 'Delete Confirmation', 
     close: function() { 
      $(this).dialog('destroy'); 
     } 
    }); 
+0

Hola, probé y no funciona ... ¿Alguna otra idea? Muchas gracias – shennyL

+1

Intenta no especificar el índice z junto con la opción 'stack: true' – tobias86

+1

Considera también 'destruir' el diálogo una vez que hayas terminado con él. Ver respuesta editada. – tobias86

Cuestiones relacionadas