几周前,我用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/