我一直致力于为 AJAX 请求制作一个简单的加载函数。 AJAX 对我来说还很陌生,所以我确信我只是在做一些愚蠢的事情!
ajaxStart 触发并开始加载 spinner.gif,但 ajaxComplete 不会触发,并且即使在延迟 1 秒后加载第二页结果后,gif 仍会继续旋转。 Jquery 已加载,第二页的 ajax 加载工作正常 - 一旦加载函数完成,它只是停止播放此加载 gif!有人有什么想法吗?谢谢!
<script>
$(document).ready(function() {
$(document).ajaxStart(function(load_a){
$("#wait_a").css("display", "block");
});
$(document).ajaxComplete(function(load_a){
$("#wait_a").css("display", "none");
});
var load_a = function () {
setTimeout(function(){
$('#ajax_content_a').load('http://localhost/a.php');},1000);
alert(exception);
}
load_a();
});
</script>
<div id="ajax_content_a">Loading...</div>
<div id="wait_a" style="display:none;width:120px;height:120px;border:0px;position:absolute;top:50%;left:50%;padding:2px;"><img src='http://localhost/loading_spinner.gif' width="120" height="120" /></div>
最佳答案
虽然这不能解决您的问题(好吧,实际上可能如此。但它不能解决问题的根源),但 ajaxComplete
从未被命中的原因很可能是因为某些原因在此之前就失败了。为了确保这一点,请添加以下代码片段:
$(document).ajaxError(function(event, jqxhr, settings, thrownError) {
console.log(event)
console.log(jqxhr)
console.log(settings)
console.log(thrownError)
alert('Ouch, ajax failed: ' + thrownError);
$("#wait_a").css("display", "none");
});
检查控制台以获取详细的错误消息。
ajaxComplete
通常应在发生错误后调用,但如果代码因错误而停止,则不应调用。
关于javascript - ajaxComplete 不触发以停止脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30218310/