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);
}
});
});
}
};
So schafft dies eine instagram ähnliche Einrichtung, wo wir zuerst '.pagination'
verstecken, die verwendet wird, wenn der Benutzer js nicht aktiviert ist, eine button
zeigt. Sie klicken auf diese Schaltfläche und erhalten die nächste Seite mit Fotos. Dann verwenden wir scroll
, um die nächsten Seiten hinzuzufügen. Das alles funktioniert gut.jQuery blättern Sie auf den Seiten arbeiten sollte es nicht wegen turbolinks auf Arbeit
Das Problem, dass mit Turbolinks aktiviert ist, funktioniert es auf ganz anderen Teilen der App, obwohl diese Seiten nicht das Element '#infinite-scrolling'
enthalten. Diese Seiten haben$('.pagination .next_page a').attr('href')
und das scheint genug für Turbolinks zu sein, um die scroll
Funktion auf diesen Seiten zu aktivieren!
Ich versuchte, die scroll
Funktion in if(window.location.pathname == "/photos")
zu wickeln, aber das half immer noch nicht.
bearbeiten: Ich habe ein Skript zu den anderen Seiten hinzugefügt $(window).off('scroll')
und dass die Scroll stoppt auf diesen Seiten von der Arbeit, aber ich würde in einer besseren Art und Weise, darüber zu gehen interessiert.
Probieren Sie es einmal $ ("Körper"). Scroll (Funktion (e) {e.preventDefault()}); –
@ Mr.HK können Sie genauer sein, wohin dies im Code gehen soll? vielleicht als Antwort einreichen –
Von Heiss Ja sicher –