有人可以帮我理解为什么这不起作用?在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)
我知道这是一个老问题,但我只修复了我自己的问题,所以我发布了我的解决方案:基本上,检查JavaScript是否有异常或语法错误.
从评论中,听起来您的问题是由语法错误引起的.对我来说,我的ajaxSuccess处理程序中有一个例外,它阻止了ajaxStop的触发.然后ajaxStart不会触发后续的ajax调用,因为ajaxStart仅在批处理的第一个ajax调用时触发.jQuery从未收到过ajaxStop,所以它认为批处理仍在运行.
您不需要从文档就绪函数返回 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/
| 归档时间: |
|
| 查看次数: |
10905 次 |
| 最近记录: |