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/