ajaxStop()不会触发

这是无效的代码:

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

这是我的Ajaxfunction:

 function getAjax(url, callback) { jQuery.ajaxPrefilter(function( options ) { options.global = true; }); $.ajax({ url: url, type: "GET", dataType: "jsonp", success: callback }); } 

为什么ajaxStop()从不开火?

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

从机票:

JSONP请求无法保证完成(因为未捕获错误)。 在这种情况下,jQuery 1.5强制全局选项为false,以便保证内部ajax请求计数器在某一点或另一点恢复为零。

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

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

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