0

我正在做一个类似于 Google Reader 的项目。

我正在使用 Infinite Scroll jQuery 插件,它在查看默认选定类别的内容(在可滚动的 div 中)时完全按照广告宣传的方式工作。

However when selecting another category (or folder in the case of Google Reader) and the contents of that category is loaded with ajax into the same div container as above (basically exactly like Google Reader) and scrolling down to page 2 the problems arise as it将移至先前选择的任何页面 +1,而不是在选择新类别时从头开始。

我认为基本上我需要一种在选择新类别时重置插件的方法。非常感谢任何帮助。

4

4 回答 4

1

你的回答对我不起作用。这是我所做的:

您必须为 InfiniteScroll 的重新实例设置两个变量才能工作。您还必须重新绑定它。这是代码:

$('#myContainer').infinitescroll('destroy'); // Destroy

// Undestroy
$('#myContainer').infinitescroll({                      
    state: {                                              
        isDestroyed: false,
        isDone: false                           
}
});

InitInfiniteScroll(); // This is a wrapper for the standard initialization you need

// Re-initialize
$('#myContainer').infinitescroll('bind');
于 2012-03-21T16:50:48.033 回答
1

我意识到这是一个非常笼统的问题。我希望能找到做过类似事情的人。

无论如何,这可能不是最佳的,但我这样解决了。

我将此函数添加到可以从插件外部调用的插件中:

this.resetPlugin = function() {
  $(document).unbind('retrieve.infscr',kickOffAjax);
  props.currPage = 1;
};

我像这样加载插件

window.infinitescroll = $('#content').infinitescroll({usual settings});

选择其他类别时我可以将其重置:

window.infinitescroll.resetPlugin();
于 2010-06-14T14:44:16.340 回答
0

如果有人遇到类似问题,只想贡献我的答案。

var off = 0;
var infinite = {};


function loadMorePosts(cat, offset){
            //FUNKY AJAX LOAD
}


function initInfinite(){
    infinite = new Waypoint.Infinite({
      element: $('.infinite-container')[0],
      onBeforePageLoad: function() {
        console.log(off);
        var cat = $('.f-categories').val();
        loadMorePosts(cat, off);
        off += 5;
      },
      onAfterPageLoad: function(){
        //console.log($.noop);
      }
    });
}
initInfinite();

$(function() {
    $('.f-categories').change(function(){
        var cat = $(this).val();
        off = 0;
        infinite.destroy();
        $('.grid').html('');
        initInfinite();
        loadMorePosts(cat,off);
    });
});
于 2015-01-10T12:50:43.753 回答
0

只有这对我有用,可能这个解决方案已经过时了:

jquery无限滚动“重置”

于 2013-08-21T15:58:29.257 回答