2011-07-07 53 views
6

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

TIA!

的CSS:

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

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> 

回答

2

你不需要从文件准备的函数返回false,但你确实需要添加右括号)这样

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

您的网址“我/ getAllInfo.class.php“看起来不对。

尝试在.ajaxStop()这样注释掉$(本).hide():

.ajaxStop(function() { 
    //$(this).hide(); 
}) 

由于其可能为它显示了这么短的时间,你不会看到它。

继承人为您小提琴:http://jsfiddle.net/GrsRT/11/

+0

现在正在工作。出于某种原因,我很难确定我已经关闭了所有的括号和大括号。非常感谢! –

3

不要将其链loadingDiv

试试这个:

$.ajaxStart(function() { 
    $('#loadingDiv').show(); 
}); 

$.ajaxStop(function() { 
    $('#loadingDiv').hide(); 
}); 
6

我知道这是一个老问题,但我只是固定的我自己这个问题的发生,所以我张贴我的解决方案:基本上,检查你的JavaScript例外或语法错误。

从评论,这听起来像你的问题是由语法错误造成的。对我来说,我的ajaxSuccess处理程序中有一个异常,它阻止了ajaxStop的触发。然后,ajaxStart不会触发后续的ajax调用,因为ajaxStart只会触发批次的第一个ajax调用。 jQuery从未收到过ajaxStop,所以它认为批处理仍在运行。

+1

Excatly。成功callcack中的异常阻止了我的ajaxStop发射。 –

相关问题