这是不起作用的代码:
$(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()
从不开火?
您会注意到我正在发出 JSONP 请求。我花了很长时间才找到这个,但这个问题的答案是可以找到的here http://bugs.jquery.com/ticket/8338#comment:1.
从门票上看:
JSONP 请求不能保证完成(因为错误不会
捕捉)。在这种情况下,jQuery 1.5 强制全局选项为 false,所以
保证内部 ajax 请求计数器返回到
在某一点或另一点为零。
如果您希望所有请求都触发事件,无论如何(并且面临 1.4.4 所示的相同不一致的风险),您可以使用以下预过滤器:
jQuery.ajaxPrefilter(function( options ) {
options.global = true;
});
例证:http://jsfiddle.net/X4JTx/ http://jsfiddle.net/X4JTx/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)