Используя плагин Infinite Scroll jQuery с ajax - PullRequest
0 голосов
/ 10 июня 2010

Я делаю проект, похожий на Google Reader.

Я использую плагин Infinite Scroll jQuery, который работает точно так, как рекламируется при просмотре содержимого выбранной по умолчанию категории (в прокручиваемом div).

Однако при выборе другой категории (или папки в случае Google Reader) содержимое этой категории загружается с помощью ajax в тот же контейнер div, что и выше (в основном точно так же, как Google Reader), и прокручивается вниз до страницы 2.проблемы возникают, когда он перемещается на любую страницу, которая была ранее выбрана +1, вместо того, чтобы начинать с начала, когда выбирается новая категория.

Я думаю, что в принципе мне нужен способ сбросить плагин, когда новая категориявыбран.Любая помощь с благодарностью.

Ответы [ 4 ]

1 голос
/ 21 марта 2012

Ваш ответ не сработал для меня. Вот что я сделал:

Вы должны установить две переменные для восстановления 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');
1 голос
/ 14 июня 2010

Я понимаю, что это был очень общий вопрос.Я надеялся найти кого-то, кто сделал что-то подобное.

В любом случае, это, вероятно, не оптимально, но я решил это следующим образом.

Я добавил эту функцию в плагин, который можно вызывать извне плагина:

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

Я загружаю плагин следующим образом

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

Чем я могу сбросить его, когда выбрана другая категория:

window.infinitescroll.resetPlugin();
0 голосов
/ 10 января 2015

Просто хочу внести свой ответ, если кто-то сталкивается с подобной проблемой.

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);
    });
});
0 голосов
/ 21 августа 2013

Только у меня это работает, может быть, эти решения устарели:

jquery бесконечный свиток "сброс"

...