javascript - ajaxComplete 不触发以停止脚本

标签 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>

最佳答案

虽然这不能解决您的问题(好吧,实际上可能如此。但它不能解决问题的根源),但 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/

相关文章:

javascript - jQuery.ajax() 中的范围问题

javascript - NodeJS 闭包 - 循环对象数组并使用每个对象的数据 Ping 服务器

javascript - 使用 CryptoJS 将解密格式解析为具有大部分填充的字符串时出现问题

javascript - 如何从异步调用返回响应?

javascript - 如何对 AJAX 调用返回的类似数据进行分组?

javascript - 如何切断 AJAX 加载文本的末尾?

javascript - WMTS 和 WMTSTileGrid 导致 "Cannot read property ' 每个'未定义'

javascript - Highcharts y 轴文本标签

javascript - 编辑 bootstrap-table 中的行

jquery - 如何在 html 页面中将 jquery 添加为 dynamics crm 2011 中的 Web 资源