2011-07-07 48 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發射。 –

相關問題