jQuery carica il contenuto quando scorri in fondo a 100 px di pagina, più eventi triggersti

Voglio che un evento carichi più contenuti quando un utente sta scorrendo e raggiunge quasi il fondo della pagina, diciamo a circa 100px dal basso, il problema è che gli eventi vengono generati ogni volta che si scorre in quel 100px inferiore della pagina, quindi questo è un problema ovvio che non può accadere, per ovvi motivi, quindi mi chiedo come posso fare meglio, ho controllato altre risposte / domande qui, tuttavia l’unica soluzione che funziona parzialmente non si adatta a ciò che mi serve da fare, e quando provo a cambiarlo così sarà, blocca completamente il mio browser ogni volta. questa è la domanda: controlla se un utente ha fatto scorrere verso il basso

La risposta che sto guardando è vicina al fondo, ma ecco il codice che suggerisce:

$(window).scroll(function() { if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { $(window).unbind('scroll'); alert("near bottom!"); } }); 

ora come ho detto, funziona e previene più di un evento, il problema è che ho bisogno di avere una quantità infinita di eventi licenziati, diciamo che carico 100 righe di informazioni quando raggiungete il fondo, ma ce ne sono ancora altre 1500 , ho bisogno di ripetere ogni volta per caricare ogni quantità di informazioni (una volta raggiunta la parte inferiore 100px della pagina ogni volta)

quindi quello che ho cercato di fare è:

  function loadMore() { alert("More loaded"); $(window).bind('scroll'); } $(window).scroll(function() { if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { $(window).unbind('scroll'); loadMore(); } }); 

come ho detto, questo blocca immediatamente il mio browser ogni volta, la parte vincolante.

Stavo avendo lo stesso problema anche io. Mi sono imbattuto in questo link e mi ha davvero aiutato (e lavorato)!

Aggiornamento: ho guardato il codice e penso che quando si rebinda, ti manca la funzione per rifarti di nuovo.

jsFiddle

  function loadMore() { console.log("More loaded"); $("body").append("
"); $(window).bind('scroll', bindScroll); } function bindScroll(){ if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { $(window).unbind('scroll'); loadMore(); } } $(window).scroll(bindScroll);

Questo ti aiuterà.

  

Passare attraverso questo link per l'intero articolo e dettagli su come triggersre più eventi.

caricare più contenuti quando il browser scorre fino alla fine della pagina in jQuery

Ho avuto lo stesso problema. Per risolverlo, Im utilizza la libreria underscore.js per impedire l’triggerszione di più eventi. Ecco il link. http://underscorejs.org/#throttle