几周前,我用jquery实现了一个无限滚动页面。滚动本身效果很好,但是我得到了一个非常奇怪的副作用。

当我滚动并加载新内容时,在最初的几秒钟内没有任何链接可用。实际上,页面上任何位置的链接都不会在几秒钟内起作用。如果我滚动得真的太远,例如,连续快速加载5个页面,这似乎会变得更糟-然后,我必须等待20秒,然后才能单击页面上任何位置的任何链接。

我在使用Firefox或IE8上也有相同的经验,所以我猜测它不是浏览器。

任何想法是什么原因或解决办法?

最佳答案

还有这个问题吗?

问题:


页面加载20秒后,链接是否可点击?浏览器是“冻结”了20秒还是仅仅是无法点击的链接?
要加载更多内容,是一个显示“显示更多”的链接,还是在用户点击页面底部时自动加载内容?
您是否正在使用jQuery的.scroll()更新内容?


初步想法:


您是否对无法点击的链接使用.click()或.bind('click',function)?试试.live('click',function)代替。
尝试使用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>

关于jquery - jQuery无限滚动导致链接暂时不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8276642/

10-12 12:39
查看更多