下面的代码是否有明显的原因为什么这不起作用?
当我跑步时,“ajaxBusy”div永远不会隐藏,而“内容”div永远不会改变它的可见性设置。所以我倾向于相信.ajaxStop永远不会发生。我尝试删除所有其他javascript函数,但这没有改变任何东西。
在HTML文档的头部,我有:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<!--<script type="text/javascript">
$(function() {
$("#content").css('visibility','hidden');
$('#ajaxBusy').ajaxStop(function(){
alert('it ran!');
$('#ajaxBusy').hide();
$("#content").css('visibility','visible');
});
});
</script> -->
<script src="sliding.form.js" type="text/javascript"></script>
<script src="scripts.js" type="text/javascript"></script>
其中“ajaxBusy”包含加载GI。这是注释的代码,它运行不正常。
答案 0 :(得分:1)
确保在调用ajax请求之前绑定.ajaxStop。我在你的代码中没有看到任何ajax,我假设这不是问题。 :)
答案 1 :(得分:0)
hide()设置元素css属性display:none
签入Firebug进行确认。 visibility:visible将不执行任何操作,因为display和visibility属性以不同方式隐藏div。可见性隐藏到div但是将其留在DOM中,即div将显示为空。 display:none显示DOM,好像div从不在那里。
答案 2 :(得分:0)
尝试使用
$('#ajaxBusy').ajaxStop(function(){
$(this).hide();
$("#content").show();
});
因为它是如何在jquery api文档上使用的。 http://api.jquery.com/ajaxStop/。使用.show();
和.hide();
代替设置可见性css属性。
另外,我只是在回调中删除一个alert('it ran!');
,以便在浏览器中获得有关是否被调用的快速反馈。
答案 3 :(得分:0)
试试
$(document).ajaxStop(function() {
alert('it ran!');
$('#ajaxBusy').hide();
$("#content").show();
});
您的 $('#ajaxBusy').ajaxStop(function(){})
可能没有捕获 ajax 调用停止事件