2011-03-11 21 views
5

çağırır ve varsayılan büyükDevre Dışı BlockUI ben parlak BlockUI kullanıyorum

$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI); 

kullanarak kurdunuz - Ben sayfasında bir otomatik tamamlama öğesi ekleyin dışında ve sonra blockUI kullanıcı yazmaya başladığında hemen başlar. Ajax bloğunu başlatmak için çağrıların ne olduğunu açıkça belirtmek yerine, herkes belirli ajax işlevleri için blockUI'yi devre dışı bırakmanın bir yolunu düşünebilir mi?

cevap

6

Böyle bir şey yapabileceğini:

var dontBlock = false; 

$(document).ajaxStart(function(){ 
    if(!dontBlock) 
     $.blockUI(); 
}).ajaxStop($.unblockUI); 

// And in the ajax methods (to be excluded), set dontBlock accordingly 

$('#autocomplete').keydown(function(){ 
    dontBlock = true; 
    $.ajax({ 
     // url, data etc. 
     success: function(){ dontBlock = false; } 
    }); 
}); 
23

jQuery olarak bir ajax çağrısı farklı ayarları Ajax isteği yapılandırmak anahtar/değer çiftleri kümesi kabul eder. Tüm ayarlar isteğe bağlıdır.

Şimdi burada şu var:

ayarları isim: küresel, Tip: Boole, Standart: gerçek

Açıklama: Globa tetiklemek için Bu istek için l Ajax olay işleyicileri. Varsayılan değer doğrudur. AjaxStart veya ajaxStop gibi global işleyicilerin tetiklenmesini önlemek için false değerine ayarlayın. Bu çeşitli Ajax Olaylarını kontrol etmek için kullanılabilir.

Örnek: Yukarıdaki örnek

$.ajax({ 
     global: false, 
     type: "POST", 
     url: 'ajax/test.html', 
     success: function(data) { 
      $('.result').html(data); 
      alert('Load was performed.'); 
     } 
}); 

blockUI gibi herhangi ajax başlangıç ​​veya ajax durdurma olayları yürütülmesini durdurur.

+0

Awesome! Bugün bunu öğrendim ... :) –

İlgili konular