.ajaxStart和.ajaxStop没有解雇

Mat*_*ger 6 ajax jquery

有人可以帮我理解为什么这不起作用?在ajax .load加载页面时会出现loading.gif,但不会消失.这让我相信无论是.ajaxStart还是.ajaxStop函数都没有被调用(因为它最初也没有隐藏它).

TIA!

css:

#loadingDiv {
background-image: url('images/loading.gif');
height: 32px;
width: 32px;
margin: 50px auto 50px auto; }
Run Code Online (Sandbox Code Playgroud)

jquery:

<script type="text/javascript">
        $(document).ready(function()
            {
                $('#loadingDiv')
                    .hide()
                    .ajaxStart(function() {
                        $(this).show();
                    })
                    .ajaxStop(function() {
                        $(this).hide();
                    })
                ;
                $("#results").load("i/getAllInfo.class.php"); return false;
            };
    </script>
Run Code Online (Sandbox Code Playgroud)

Wal*_*osz 6

我知道这是一个老问题,但我只修复了我自己的问题,所以我发布了我的解决方案:基本上,检查JavaScript是否有异常或语法错误.

从评论中,听起来您的问题是由语法错误引起的.对我来说,我的ajaxSuccess处理程序中有一个例外,它阻止了ajaxStop的触发.然后ajaxStart不会触发后续的ajax调用,因为ajaxStart仅在批处理的第一个ajax调用时触发.jQuery从未收到过ajaxStop,所以它认为批处理仍在运行.


jzi*_*lla 2

您不需要从文档就绪函数返回 false,但您确实需要添加右括号),如下所示

     $("#results").load("i/getAllInfo.class.php"); return false;
 }); //<----- you need the )
Run Code Online (Sandbox Code Playgroud)

您的网址“i/getAllInfo.class.php”看起来错误。

尝试在 .ajaxStop() 中注释掉 $(this).hide() ,如下所示:

.ajaxStop(function() {
     //$(this).hide();
})
Run Code Online (Sandbox Code Playgroud)

因为它可能显示的时间很短,以至于您看不到它。

这是给你的小提琴: http: //jsfiddle.net/GrsRT/11/