2009-11-14 37 views
9

javascript ve jQuery için yeni. JQuery UI widget'larını kullanarak kalıcı bir iletişim kutusu uygulamaya çalışıyorum.jQuery UI modal iletişim kutusu engellenmiyor

Kalıcı iletişim kutusu, Tamam ve İptal düğmelerini kullanarak doğru şekilde görüntülenir, ancak iletişim kutusu ('açık') işlev çağrısı engellenip Tamam veya İptal tıklatılmasını beklemiyor gibi görünmektedir. Örneğin, ben butona şu kodu

..... çalıştırdığınızda

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

uyarı kutusu ilk gösterilir ve SONRA kalıcı iletişim kutusu kadar gösterir tıklayın! okToDelete işlevi girdiğimde ve OK düğmesi geri çağrısında true olarak ayarlandığında yanlış olarak ayarladığım global bir değişkendir.

İşte O 'bloğuna' anlamına gelmez benim iletişim init fonksiyonu

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

cevap

11

olduğunu. Alarmı (test için varsayalım) görüntülemek veya iletişim kutusu kapanırsa, callback veya ok, cancel işlevlerine yerleştirmek için diğer işlevleri çağırmak isterseniz.

Kontrol şuna:
iletişim kapatıldığında bu olay tetiklenir: dokümanlardan
http://docs.jquery.com/UI/Dialog#event-close

olay close.
Kod örnekleri

Kapat etkinliğini bir init seçeneği olarak ele almak için bir geri arama işlevi sağlayın. türüne göre yakın olaya

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

Bind: dialogclose.

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