.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.
每当一个Ajax请求即将发送,jQuery就会触发ajaxSend
事件,在这个时间点所有处理函数都会使用.ajaxSend()
方法注册并执行。
我们可以建立一个基本的Ajax请求,观察该方法的执行过程:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
我们可以在一些节点上添加的事件处理函数:
$('.log').ajaxSend(function() { $(this).text('Triggered ajaxSend handler.'); });
现在我们可以构建一个Ajax请求使用任何的jQuery方法:
$('.trigger').click(function() { $('.result').load('ajax/test.html'); });
当我们点击这个按钮并且Ajax请求即将开始发送,这个信息就会显示。
注意: 因为.ajaxSend()
是作为一个jQuery对象实例方法去执行的,我们可以用this
关键字作为回调函数中指定的元素。
无论哪一个Ajax请求被完成,所有ajaxSend
处理器都将被执行。如果我们必须区分的请求,我们可以使参数传递给这个处理器。 他是通过事件对象、 XMLHttpRequest
对象和设置对象中使用的请求,做每一次ajaxSend
处理器执行的。 举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:
$('.log').ajaxSend(function(e, xhr, settings) { if (settings.url == 'ajax/test.html') { $(this).text('Triggered ajaxSend handler.'); } });
举例:
当Ajax请求即将发送前显示一个信息。
$("#msg").ajaxSend(function(evt, request, settings){
$(this).append("<li>Starting request at " + settings.url + "</li>");
});