2009-11-14 13 views
9

Soy nuevo en javascript y jQuery. Estoy tratando de implementar un cuadro de diálogo modal utilizando los widgets de jQuery UI.jQuery UI diálogo modal no bloquea

El cuadro de diálogo modal se muestra correctamente con los botones Aceptar y Cancelar, pero la llamada a la función de diálogo ('abrir') no parece bloquearse y espera un clic OK o Cancelar. Por ejemplo, cuando corro el siguiente código

..... el clic de botón

okToDelete = false; //a global variable 
    $('deleteDialog').dialog('open'); //this does not block but returns immediately 
    alert(okToDelete == true ? "ok" : "false"); 

El cuadro de alerta se muestra en primer y ENTONCES el diálogo modal muestra arriba! okToDelete es una variable global que configuro en falso cuando ingreso la función y se establece en verdadero en la devolución de llamada del botón OK.

Aquí es mi función init de diálogo

$("#deleteDialog").dialog({ 
     bgiframe: true, 
     autoOpen: false, 
     modal: true, 
     overlay: { 
      backgroundColor: '#000', 
      opacity: 0.5 
     }, 
     buttons: { 
      Cancel: function() { 
       $(this).dialog('close'); 

      }, 
      Ok: function() { 
       $(this).dialog('close'); 
       okToDelete = true; 
      } 
     } 
    }); 

Respuesta

11

No tiene la intención de 'bloque'. Si desea mostrar la alerta (supongo que es para realizar pruebas) o llamar a otras funciones después de que se cierra el cuadro de diálogo, si lo coloca dentro de las funciones callback o ok, cancel.

mira esto:
http://docs.jquery.com/UI/Dialog#event-close

El evento close a partir de los documentos:
Este evento se activa cuando el diálogo se cierra.
Ejemplos de código

Proporcione una función de devolución de llamada para manejar el evento de cierre como una opción de inicio.

$('.selector').dialog({ 
    close: function(event, ui) { ... } 
}); 

se unen al evento de cierre por tipo: dialogclose.

$('.selector').bind('dialogclose', function(event, ui) { 
    ... 
}); 
Cuestiones relacionadas