【问题标题】:jQuery infinite scroll causes links to temporarily not work?jQuery无限滚动导致链接暂时不起作用?
【发布时间】:2012-01-06 18:41:22
【问题描述】:

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

当我滚动并加载新内容时,前几秒内没有任何链接可用。事实上,页面上的任何链接都不会在几秒钟内起作用。如果我滚动得非常远,例如快速连续加载 5 个页面,情况似乎会变得更糟 - 然后我必须等待 20 秒,然后页面上的任何链接都可以点击。

我在使用 Firefox 或 IE8 时也有同样的体验,所以我猜不是浏览器的问题。

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

【问题讨论】:

    标签: jquery hyperlink infinite-scroll


    【解决方案1】:

    还有这个问题吗?

    问题:

    • 页面加载 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>
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      • 2013-02-17
      • 1970-01-01
      相关资源
      最近更新 更多