2009-11-14 17 views
9

Ich bin neu in Javascript und jQuery. Ich versuche, einen modalen Dialog mit jQuery UI Widgets zu implementieren.jQuery UI modalen Dialog nicht blockiert

Der modale Dialog wird korrekt mit den Schaltflächen OK und Abbrechen angezeigt, aber der Dialog ('Öffnen') Funktionsaufruf scheint nicht zu blockieren und wartet auf einen OK- oder Abbrechen-Klick. Zum Beispiel, wenn ich den folgenden Code

..... auf die Schaltfläche ausführen klicken

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

Die Warnmeldung wird angezeigt erste und DANN der modalen Dialog erscheint! okToDelete ist eine globale Variable, die ich auf "false" setze, wenn ich die Funktion eintrage, und auf "OK" im Callback-Modus auf "true" setzen.

Hier ist meine Dialoginitialisierungsauftrag Funktion

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

Antwort

11

Es ist nicht zu 'Block' zu verstehen. Wenn Sie die Warnung anzeigen möchten (ich nehme an, das ist für den Test) oder andere Funktionen aufrufen, nachdem das Dialogfeld geschlossen wird, wenn Sie es innerhalb der callback oder ok, cancel Funktionen platzieren. diese

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

Die Veranstaltung close aus der Dokumentation:
Dieses Ereignis wird ausgelöst, wenn der Dialog geschlossen.
Codebeispiele

Geben Sie eine Callback-Funktion an, die das close-Ereignis als Init-Option behandelt.

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

Bindung an das Schließen-Ereignis nach Typ: dialogclose.

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