返回介绍

.ajaxSend()

发布于 2017-09-11 字数2738 浏览 945 评论 0

所属分类:Ajax > 全局 Ajax 事件处理器

.ajaxSend( handler(event, jqXHR, ajaxOptions) )返回: jQuery

描述: 在Ajax请求发送之前绑定一个要执行的函数,这是一个 Ajax Event.

  • 添加的版本: 1.0.ajaxSend( handler(event, jqXHR, ajaxOptions) )

    • handler(event, jqXHR, ajaxOptions)
      类型: Function()
      被调用的函数。

每当一个Ajax请求即将发送,jQuery就会触发ajaxSend事件,在这个时间点所有处理函数都会使用.ajaxSend()方法注册并执行。

观察这种方法,建立一个基本的Ajax加载请求:

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

在document上绑定事件处理器:

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

现在,我们可以使用任何的jQuery方法构建一个Ajax请求:

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

当我们点击class为 trigger 的元素并且Ajax请求即将开始,这个信息就会显示。

但是从 jQuery 1.8 开始, .ajaxSend() 方法只能绑定到 document元素.

注,这段在官网的原文中已经被删除: 因为.ajaxComplete() 是作为一个jQuery对象实例方法去执行的,回调函数中,我们可以用this关键字作为指定的元素。

无论哪一个Ajax请求被发送,所有ajaxSend处理器都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理器。 每次ajaxSend 处理器执行,它传递事件对象,jqXHR对象(在 jQuery 1.4中是XMLHttpRequest对象),和用来创建请求的设置(settings object)对象。如果请求失败,因为JavaScript抛出一个异常,并且作为第四个参数的异常对象被传递给处理程序。举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:

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

其他注意事项:

  • 如果global选项设置为false,调用$.ajax().ajaxSend()方法将不会被触发。

例子:

当Ajax请求即将发送前显示一个信息。

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

您暂时不能评论!

管理员开启了需要登录才能够评论,你可以免费注册一个本站的账号。

还没有评论!

目前还没有任何评论,快来抢沙发吧!