Некоторый пример кода 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.
Но приведенный выше код делает это один раз, и я хотел бы, чтобы эта часть зацикливалась до тех пор, пока не будут выполнены вышеуказанные условия.
Как мне изменить этот код, чтобы можно было сделать описанный цикл?