一些示例js代码:
var $ = jQuery,
$container = $('#gridcontainer');
done_loading = false;
$container.infinitescroll({
navSelector : '#navi',
nextSelector : '#navi a',
itemSelector : '.grid-item',
errorCallback : function () {
done_loading = true;
console.log(done_loading);
},
// call Isotope as a callback
function( newElements ) {
$container.isotope( 'insert', $( newElements ) );
}
);
$('a.my_test_button').click(function(event){
event.preventDefault();
if ( $('#gridcontainer div.isotope-item:not(.isotope-hidden)').size() < 15 && done_loading == false ) {
$container.infinitescroll('retrieve');
console.log('loaded');
}
}
此代码使用同位素设置无限滚动,并在用户滚动到底部时加载更多元素。现在,当使用同位素过滤器时,一些元素被隐藏了,所以当我在某些页面上加载更多元素时,可能没有过滤类型的元素。所以这就是我a.my_test_button
应该发挥作用并加载更多项目的地方,直到无限errorCallback
滚动触发并设置done_loading
为true(所有页面都已加载,因此没有更多要加载的内容)或未隐藏元素的数量超过15。
但是上面的代码只做了一次,我希望这部分循环直到满足上述条件。
我应该如何更改此代码才能进行描述的循环?