.ajaxSend()| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

.ajaxSend()

分类:Ajax > 全局Ajax事件处理

这是一个Ajax事件。

返回: jQuery

.ajaxSend( handler )

描述:附加一个函数,在一个Ajax请求发送之前执行它。这是一个Ajax事件

加入于: 1.0
.ajaxSend( handler )

每当一个Ajax请求将要被发送时,jQuery触发ajaxSend事件。任何已经用.ajaxSend()方法注册到该事件的处理函数都会在这个时候执行。

要想在实践中观察该方法,只要设置一个基本的Ajax载入请求:

<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>

Attach the event handler to the document:

$( document ).ajaxSend(function() {
  $( ".log" ).text( "Triggered ajaxSend handler." );
});

Now, make an Ajax request using any jQuery method:

$( ".trigger" ).click(function() {
  $( ".result" ).load( "ajax/test.html" );
});

用户点击了带trigger样式类的元素之后,当Ajax请求即将开始时,将显示日志消息。

所有的ajaxSend处理函数都会被调用执行,无论即将发送哪个Ajax请求。如果你必须区分这些请求,请使用传递给处理函数的参数。每次执行一个ajaxSend处理函数的时候,会向它传递该事件对象、jqXHR对象(在jQuery 1.4版中,是XMLHttpRequest对象),以及创建请求时所用到的setting对象。举个例子,你可以把回调函数限制到只处理跟特定URL有关的事件:

$( document ).ajaxSend(function( event, jqxhr, settings ) {
  if ( settings.url == "ajax/test.html" ) {
    $( ".log" ).text( "Triggered ajaxSend handler." );
  }
});

其它说明

  • 自从jQuery 1.9版,所有的用于jQuery全局Ajax事件的处理函数,包括用.ajaxSend()方法添加的处理函数,必须附加到document上。
  • 如果在调用$.ajax()方法或者$.ajaxSetup()方法时,global选项被设置为false,将不会引发.ajaxSend()方法。

示例

在一个Ajax请求发送之前显示一条消息。

$( document ).ajaxSend(function( event, request, settings ) {
  $( "#msg" ).append( "<li>Starting request at " + settings.url + "</li>" );
});

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/ajaxsend.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。