2011-11-26 48 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>