2011-11-26 43 views
3

幾個星期前,我用jquery實現了一個無限滾動頁面。滾動本身效果很好,但我得到了一個非常奇怪的副作用。jQuery無限滾動導致鏈接暫時不工作?

當我滾動並加載新內容時,沒有一個鏈接在前幾秒鐘內工作。事實上,頁面上任何地方的鏈接都不會工作幾秒鐘。而且,如果我滾動真的很遠,例如連續快速加載5個頁面,這似乎會變得更糟 - 然後我必須等待20秒才能點擊頁面上任何位置的鏈接。

我有使用Firefox或IE8的相同經驗,所以我猜這不是瀏覽器。

任何想法是什麼原因或修復?

回答

0

還有這個問題嗎?

問題:

  • 20秒鐘後,一旦網頁加載的鏈接點擊?瀏覽器被「凍結」了20秒,還是僅僅是無法點擊的鏈接?
  • 要加載更多內容,它是指「顯示更多」的鏈接,還是用戶點擊頁面底部時自動加載的內容?
  • 你使用jQuery的.scroll()來更新內容嗎?

最初的想法:

  • 是否使用。點擊()或.bind( '點擊',功能)爲arn't可點擊的鏈接?嘗試.live('點擊',函數)。
  • 嘗試使用setTimeout。對於某些瀏覽器而言,jQuery的.scroll調用處理程序函數的每個像素都會更改滾動條...並不是所有的滾動操作都會導致函數調用的重載。嘗試這樣做,它不會做1000的功能,當你調用滾動(這只是一個簡單的例子...代碼可能是更好的):

    <script type="text/javascript"> 
        var scrolling = false; 
        $(document).scroll('setScroll'); 
    
        function setScroll() { 
         scrolling = setTimeout(doScrollUpdate, 300); 
        } 
    
        function doScrollUpdate() { 
         clearTimeout(scrolling); 
         // Do your ajax stuff here 
        } 
    </script>