1

我正在使用Infinite Scroll插件(我知道这是不推荐的http://isotope.metafizzy.co/docs/help.html#infinite_scroll_with_filtering_or_sorting),Infinite Scroll + Isotipe 过滤组合。

现在有时会发生在我运行过滤器后,如果我得到一个空列表,我会手动触发无限滚动以加载更多元素。

$('.items').isotope({ filter: filter }, function( $items ) {
    var id = this.attr('class'),
    len = $items.length;
    if (len == 0){getElement();}
});

这是我加载元素的函数,但似乎回调不起作用。

function getElement(){
    $('.items').infinitescroll('retrieve',function(items){  
         console.log('callback');
          console.log(items);   
     });
}

不幸的是,Infinite Scroll 文档不是手动触发的最佳选择(它提出了一种不可行的调用方式 -$(document).trigger('retrieve.infscr');我在这里找到了解决方案:无限滚动手动触发)所以我有点卡在这里。

有什么建议吗?

4

1 回答 1

1

我知道这是一个非常古老的帖子。但是当我搜索自我问题时,我在谷歌上找到了它。但我也找到了解决方案。也许它可以帮助某人...

您必须将回调而不是主函数。因为手动功能只推主要功能。

jQuery(document).ready(function($) {
var $infinitecontainer = $(".infinite-content").infinitescroll({
  navSelector: ".nav-links",
  nextSelector: ".nav-links a:first",
  itemSelector: ".infinite-post",
  errorCallback: function(){ $(".inf-more-but").css("display", "none") }
}, function() { // callback
      alert("Manual click load finished");
});

$(window).unbind(".infscr");
$(".inf-more-but").click(function(e){
    e.preventDefault();
    var infinite_scroll = $(".infinite-content").infinitescroll("retrieve");
    return false;
});
于 2020-03-05T15:22:18.890 回答