.ajaxSend()
.ajaxSend( handler(event, XMLHttpRequest, ajaxOptions) ) 返回: jQuery
Description:
-
version added: 1.0.ajaxSend( handler(event, XMLHttpRequest, ajaxOptions) )
handler(event, XMLHttpRequest, ajaxOptions)The function to be invoked.
每當(dāng)一個Ajax請求即將發(fā)送,jQuery就會觸發(fā)ajaxSend事件,在這個時間點所有處理函數(shù)都會使用.ajaxSend()方法注冊并執(zhí)行。
我們可以建立一個基本的Ajax請求,觀察該方法的執(zhí)行過程:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
我們可以在一些節(jié)點上添加的事件處理函數(shù):
$('.log').ajaxSend(function() {
$(this).text('Triggered ajaxSend handler.');
});
現(xiàn)在我們可以構(gòu)建一個Ajax請求使用任何的jQuery方法:
$('.trigger').click(function() {
$('.result').load('ajax/test.html');
});
當(dāng)我們點擊這個按鈕并且Ajax請求即將開始發(fā)送,這個信息就會顯示。
注意: 因為.ajaxSend() 是作為一個jQuery對象實例方法去執(zhí)行的,我們可以用this關(guān)鍵字作為回調(diào)函數(shù)中指定的元素。
無論哪一個Ajax請求被完成,所有ajaxSend處理器都將被執(zhí)行。如果我們必須區(qū)分的請求,我們可以使參數(shù)傳遞給這個處理器。 他是通過事件對象、 XMLHttpRequest 對象和設(shè)置對象中使用的請求,做每一次ajaxSend 處理器執(zhí)行的。 舉個例子,我們能限制我們的回調(diào)到只處理事件處理某一特定的URL:
$('.log').ajaxSend(function(e, xhr, settings) {
if (settings.url == 'ajax/test.html') {
$(this).text('Triggered ajaxSend handler.');
}
});
舉例:
當(dāng)Ajax請求即將發(fā)送前顯示一個信息。
$("#msg").ajaxSend(function(evt, request, settings){
$(this).append("<li>Starting request at " + settings.url + "</li>");
});