ajaxComplete没有触发停止脚本

时间:2015-05-13 14:46:43

标签: javascript jquery ajax

我坚持为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>

1 个答案:

答案 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,但如果代码因错误而停止则不会调用。