我坚持为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>
答案 0 :(得分:0)
虽然这不能解决你的问题(好吧,它可能实际上。但它不会解决问题的根源),很可能因为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");
});
检查控制台是否有详细的错误消息。
通常应该在发生错误后调用{p>ajaxComplete
,但如果代码因错误而停止则不会调用。