Jquery ajaxStop

时间:2011-08-08 20:45:48

标签: jquery ajax

下面的代码是否有明显的原因为什么这不起作用?

当我跑步时,“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。这是注释的代码,它运行不正常。

4 个答案:

答案 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 调用停止事件