Бесконечная прокрутка jQuery в событии прокрутки DIV срабатывает более одного раза

я хочу реализовать технику бесконечной прокрутки только в div, а не во всем теле, я погуглил и нашел ответ, это ссылка но это решение срабатывает более одного раза, что приводит к более чем одной загрузке!! это моя наценка!!

<div id="articlesContainer" class="container-fluid">
   <div id="sideBarArticles" class=" col-md-3">
       //..sidebar goes here
   </div>
   <div id="articleInfinte" class="col-md-9">
       <div class="article">
         //..title.. content goes here
       </div>
   </div>
</div>

Js

   $("#articleInfinte").scroll(function(){
        if($('#articleInfinte').scrollTop() + $('#articleInfinte').outerHeight() >=        $('#articleInfinte')[0].scrollHeight){
             //Loading data...
             $('#articleInfinte').append(data);
         }

person Iliyass Hamza    schedule 20.04.2014    source источник
comment
Не настоящий ответ, но проверьте это расширение для Chrome, оно очень помогло мне с такими проблемами: Визуальное событие   -  person Dänu    schedule 20.04.2014


Ответы (1)


Вам нужно будет использовать debounce подход. По сути, после добавления данных установите переменную на секунду или две и проверьте ее в своем if. Если он существует, не добавляйте данные.

person Bill Criswell    schedule 20.04.2014
comment
Я думаю, что расчет неверен, поэтому есть ли более точная формула !! Я применил ваш подход, но он не такой ЧИСТЫЙ !! - person Iliyass Hamza; 20.04.2014
comment
Это может быть лучше в качестве дросселя, но это также зависит от того, как вы вызываете данные. Вот небольшая демонстрация, которую я настроил: jsbin.com/xebiwida/1/edit? html, js, вывод - person Bill Criswell; 20.04.2014