jQuery безкрайно превъртане в събитие за превъртане на DIV се задейства повече от веднъж

искам да внедря техниката за безкрайно превъртане само в div, а не в цялото тяло, потърсих го в Google и намерих отговор, това е връзката, но това решение се задейства повече от веднъж, което води до повече от едно зареждане!! това е моята оценка!!

<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