var paginationscript = function() {
if($('#infinite-scrolling').size() > 0) {
$('.pagination').hide();
$('#load_more_photos').show();
$('#load_more_photos').on('click', function() {
var url = $('.pagination .next_page a').attr('href');
$.getScript(url);
$('#load_more_photos').hide();
$(window).on('scroll', function() {
var url = $('.pagination .next_page a').attr('href')
if($(window).scrollTop() > $(document).height() - $(window).height() - 60 && $.active == 0) {
$.getScript(url);
}
});
});
}
};
Таким образом, создается настройка, подобная инстаграмму, где мы сначала скрываем '.pagination'
, который используется, если у пользователя не включен js, показывая button
. Они нажимают эту кнопку и переходят на следующую страницу фотографий. Затем мы используем scroll
для добавления следующих страниц. Все работает нормально.
Проблема в том, что с включенными турболинками он работает в совершенно разных частях приложения, несмотря на то, что эти страницы не содержат элемент '#infinite-scrolling'
. На этих страницах есть $('.pagination .next_page a').attr('href')
, и этого, кажется, достаточно, чтобы турболинки могли включить функцию scroll
на этих страницах!
Я попытался обернуть функцию scroll
в if(window.location.pathname == "/photos")
, но это все равно не помогло.
Изменить: я добавил сценарий на другие страницы $(window).off('scroll')
, и это действительно мешает прокрутке работать на этих страницах, однако мне было бы интересно найти лучший способ сделать это.