2009-11-14 17 views
9

Sono nuovo di javascript e jQuery. Sto cercando di implementare una finestra di dialogo modale usando i widget dell'interfaccia utente jQuery.jQuery Dialogo modale dell'interfaccia utente non bloccante

La finestra di dialogo modale si visualizza correttamente con i pulsanti OK e Annulla, ma la chiamata di funzione di dialogo ("Apri") non sembra bloccarsi e attende un OK o Annulla clic. Ad esempio, quando si esegue il seguente codice

..... sul tasto di scatto

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

La finestra di avviso viene visualizzato prima e POI la finestra di dialogo modale si presenta! okToDelete è una variabile globale impostata su false quando inserisco la funzione e impostata su true nel callback del pulsante OK.

Qui è la mia finestra funzione init

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

risposta

11

Non è destinato a 'blocco'. Se si desidera visualizzare l'avviso (presumo che sia per il test) o chiamare altre funzioni dopo la chiusura della finestra di dialogo, se si desidera inserirlo nelle funzioni callback o ok, cancel.

Check this out:
http://docs.jquery.com/UI/Dialog#event-close

L'evento close dalla documentazione:
Questo evento viene attivato quando la finestra è chiusa.
Esempi di codice

Fornire una funzione di richiamata per gestire l'evento di chiusura come un'opzione di inizializzazione.

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

Associare all'evento di chiusura per tipo: dialogclose.

$('.selector').bind('dialogclose', function(event, ui) { 
    ... 
}); 
Problemi correlati