Подтвердить что ты не робот

Разрешить infinitescroll.js запускать X раз, а затем загружать больше сообщений

Я использую infinitescroll.js script, и он работает очень хорошо. Я узнал, как заменить стандартные функции кнопкой загрузить больше, используя этот код:

$(window).unbind('.infscr');
$('.js-next-reports').click(function() {
    $grid.infinitescroll('retrieve');
    return false;
});
$(document).ajaxError(function(e, xhr, opt) {
    if (xhr.status == 404) $('.js-next-reports').remove();
});

Однако то, что я хотел бы сделать, это позволить бесконечной прокрутке работать 3/4 раза, а затем показывать кнопку .js-next-reports. Я не уверен, как следить за тем, сколько раз бежал бесконечный свиток. Я знаю, что существует currPage var, но с помощью console.log я не могу понять, как я могу ссылаться на него.

Существует также параметр maxPage для infinitescroll, который ограничивает его запуском всего X раз, поэтому я мог бы каким-то образом использовать это? Я не уверен, как получить console.log вариантов. Вот мой код инициализации, если это помогает ($ grid - это просто ссылка на div)

$grid.infinitescroll({

    // selector for the paged navigation (it will be hidden)
    navSelector  : ".pagination",
    // selector for the NEXT link (to page 2)
    nextSelector : ".pagination .next",
    // selector for all items you'll retrieve
    itemSelector : ".infinite-scroll-post",
    contentSelector : "#infinite-scrollable",
    debug: true,

    // finished message
    loading: {
        img: "ajax-loader.gif",
        msgText: "Loading more projects...",
        finishedMsg: 'No more pages to load.',
        }
    },

});

Может быть что-то вроде:?

if ( .currPage == "3" ) {
    $(window).unbind('.infscr');
    $('.js-next-reports').click(function() {
        $grid.infinitescroll('retrieve');
        return false;
    });
    $(document).ajaxError(function(e, xhr, opt) {
        if (xhr.status == 404) $('.js-next-reports').remove();
    });
}

Но я не знаю, как считать свитки или получить доступ currPage.

Спасибо

4b9b3361

Ответ 1

JSFiddle поможет проверить код, но из того, что я прочитал в своей документации, есть обратный вызов, который позволяет вам получить доступ к currPage внутри объекта состояния. Ваш код должен выглядеть примерно так:

$grid.infinitescroll({

    // selector for the paged navigation (it will be hidden)
    navSelector  : ".pagination",
    // selector for the NEXT link (to page 2)
    nextSelector : ".pagination .next",
    // selector for all items you'll retrieve
    itemSelector : ".infinite-scroll-post",
    contentSelector : "#infinite-scrollable",
    debug: true,

    // finished message
    loading: {
        img: "ajax-loader.gif",
        msgText: "Loading more projects...",
        finishedMsg: 'No more pages to load.',
    },
    appendCallback: false
    }, function(newitems, opts) {
        if(opts.state.currPage == 3) {
            $(window).unbind('.infscr');
        }
    }
});