0

我已经成功地将 jQuery Infinite Ajax Scroll 插件集成到我的开发站点中 - 它被使用了两次,第一次在左侧的线程列表中,第二次在加载单个主题时 - 但我在第二个ias实例时遇到了问题这里。

基本上一个主题的内容是通过 $.get 加载的,然后渲染到页面中,然后我setupThreadDetailDownwardScroll()在 JS 中触发,它创建了一个 ias 的实例:

var iasDetail = jQuery.ias({
    container:  "#reply-holder",
    item:       ".post",
    pagination: ".threaddetail-pagination",
    next:       ".load-next-inner-link a",
    delay:      2000,
  });

  if (iasDetail.extension) {
    iasDetail.extension(new IASPagingExtension());
    iasDetail.extension(new IASTriggerExtension({
      text: 'More Replies', 
      html: '<div class="scroll-pager"><span>{text}</span></div>',
      offset: 10,
    }));
    iasDetail.extension(new IASNoneLeftExtension({html: '<div class="scroll-message"><span>No more replies</span></div>'}));
    iasDetail.extension(new IASHistoryExtension({
        prev: '.load-previous-inner-link a',
    }));
  }

  iasDetail.on('load', function() {
    $('#reply-holder').append(scrollLoading);
  })

  iasDetail.on('rendered', function() {
    $('.scroll-loading').remove();
    iasDetail.unbind();
  })

但问题是这仅适用于您加载的第一个主题 - 您将在第一个线程中获得工作分页,但是当您打开下一个线程时它将回退到锚链接。

所以我认为一旦插入了这个新内容,我需要重新绑定 ias,这就是为什么我添加了unbind()调用 in rendered,然后setupThreadDetailDownwardScroll()每当加载另一个线程时我都会重新调用。这也不起作用。

这里有正确的程序吗?

4

1 回答 1

0

您正在使用jQuery.ias(...)which 绑定到 的滚动事件$(window)。在您的情况下,您可能希望绑定到溢出 div。因此,您应该像这样指定滚动容器:

$('#scrollContainer').ias(...)

编辑:

根据您的评论,我又看了一遍,可能已经找到了答案。当您调用jQuery.ias({...});IAS 时,会进行设置并等待$(document).ready初始化。你说你想在你的setupThreadDetailDownwardScroll函数中初始化 IAS。您可以尝试使用以下代码自己初始化 IAS

 iasDetail.initialize();
于 2014-05-12T19:59:55.153 回答