无限滚动:: mixitup:: json 和 ajax 控制

Infinite scroll :: mixitup:: json and ajax control

对于无限滚动,我正在生成 url 基于来自 mixitup 插件的过滤器和数据库 API 集。

已初始化无限滚动

function InitializeInfiniteScroll() {
var $infinite = jQuery('.mixitup').infiniteScroll({
    path: function() {
        return global.url +
            "&param1="+ global.param1 +
            "&param2="+global.param2 +
            "&param3=" + global.param3
    },
    // load page as text
    responseType: 'json',
    // disable history
    history: false,
    status: '.page-load-status',
    checkLastPage: false
});

$infinite.on( 'load.infiniteScroll', function( event, response ) {
    if(response.length > 0) {
        if(global.dataset === null) {
            global.dataset = response;
        } else {
            global.dataset = global.dataset.concat(response);
        }
        global.mixer.dataset(global.dataset);
        global.last_id = response[response.length-1].id;
    } else {
        global.lastp = 1;
        jQuery('.mixitup-container').infiniteScroll('lastPageReached');
    }
});
}

在 mixiut up 控制中,我用 :

调用它
//global params1 params2 params3 set
if(global.lastp === 1) {
  jQuery('.mixitup').infiniteScroll('destroy');
  InitializeInfiniteScroll();
  lxdata.last_page = 0;
} else {
  jQuery('.mixitup').infiniteScroll('loadNextPage');
}

我有问题,我无法在调用 lastPageReached 后调用 loadNextPage。我不知道如何正确地重置无限滚动视图以正确地使用另一个数据列表。

这样我得到一个错误:

Uncaught TypeError: o._init is not a function

如果有人会和同样的东西打架:

infiniteScrollContainer.enableScrollWatch();
infiniteScrollContainer.canLoad=true;
infiniteScrollContainer.loadNextPage();

内部加载函数:

infiniteScrollContainer.hideStatusEventElements();

以下答案对我有用(无限滚动 V3)。试图投票,但我的声誉很低。

稍微澄清一下:

const infiniteScrollContainer = $('#your_container').data('infiniteScroll');
infiniteScrollContainer.enableScrollWatch();
infiniteScrollContainer.canLoad=true;
avatarScroll.pageIndex = 1;
avatarScroll.loadCount = 0;
infiniteScrollContainer.loadNextPage();