ajaxStop()不会触发

时间:2013-01-09 01:08:27

标签: javascript jquery

这是无效的代码:

$(document).ajaxStop(function() {
    $(this).unbind("ajaxStop"); //prevent running again when other calls finish

    // Display everything
    display();
});

这是我的Ajax功能:

function getAjax(url, callback) {
    jQuery.ajaxPrefilter(function( options ) {
        options.global = true;
    });

    $.ajax({
        url: url,
        type: "GET",
        dataType: "jsonp",
        success: callback
    });
}

为什么ajaxStop()永远不会开火?

1 个答案:

答案 0 :(得分:5)

您会注意到我正在制作JSONP请求。我花了很长时间才找到这个,但可以找到这个问题的答案here

从机票:

  

无法保证完成JSONP请求(因为错误不是   抓住)。在这种情况下,jQuery 1.5强制全局选项为false   内部ajax请求计数器保证返回   在某一点或另一点为零。

     

如果您希望所有请求都能触发事件,无论是什么(并且存在相同的1.4.4不一致的风险),您可以使用以下预过滤器:

jQuery.ajaxPrefilter(function( options ) {
    options.global = true;
});
  

案例:http://jsfiddle.net/X4JTx/