2011-10-18 14 views
9

Bu geçici bir çözüm için yeterince kolaydır, ancak küresel ajax kurulumunda sarılmış eğer bir ajax arama çalıştırdığınızdajquery ajax - genel ayarlar. Ajax çağrısını hangi olay/elemanın tetiklediğini bilmek mümkün mü?

, G/olay ajax arama tetikleyen unsur bilmek istiyorum iyi olurdu beforeSend seçeneğinde.

Bunu yapmanın kısa bir yolu var mı? Böyle başlatma veya tamamlanması gibi bazı olaylar, sayfadaki herhangi bir AJAX isteği için yer alırken

cevap

8

beforeSend geri arama iki bağımsız değişken alır: XMLHTTPRequest örneği ve geçerli AJAX çağrısı tarafından kullanılan ayarlar.

$.ajaxSetup({ 
    beforeSend: function(xhr, settings) { 
     var element = settings.context.element; 
     var event = settings.context.event; 

     // Do something with 'element' and 'event'... 
    } 
}); 

$("selector").click(function(e) { 
    $.ajax("url", { 
     // your settings, 
     context: { 
      element: this, 
      event: e 
     } 
    }); 
}); 
: Eğer context seçeneğinde tetikleme elemanı ve olay geçerse

nedenle, onlar küresel kurulumunda tanımlamak bile beforeSend sunulacak

0
çağrılacak Bu yöntemler işleyicileri kayıt İşte

Global Ajax Event Handlers

başlatın

. Genel olaylar, jQuery.ajaxSetup()'daki global özelliğin geçerli olduğu varsayılan her AJAX isteğine bağlı olarak tetiklenir. Not: Küresel olaylar, global değere bakılmaksızın, etki alanları arası komut dosyası veya JSONP istekleri için asla kovulmaz.

.ajaxComplete() // initialize in for all ajax request and set event in jQuery.ajaxSetup() 

.ajaxComplete() - bir işleyici Kayıt sırasında Ajax istekleri tam çağrılacak. Bu bir Ajax Etkinliğidir.