2013-05-09 3 views
0

이런 종류의 문제가 있습니다.스크롤 이벤트에 이상한 동작이 있습니다.

페이지가 끝나고 서버에서 데이터를 가져오고 해당 부분이 올바르게 작동하는지 확인하는 scroll 이벤트가 있습니다.

문제는 이전 컴퓨터에서 스크롤 이벤트가 발생할 때로드되는 이중 항목을 가져 오는 문제가 있다는 것입니다. 나는 그것이 빠른 컴퓨터에서 정상적으로 작동으로 코드가 작동하기 위해 무엇을 할 수 있는지

...

나는 ...

스크롤 이벤트와 같은 일 내부의 코드가 일어나고 delay()에 시도

코드 :

$(window).scroll(function() 
{ 
    if($(window).scrollTop() + $(window).height() == $(document).height()) 
    { 
     $(".loader").show().delay(700).fadeOut(); 
     $.ajax({ ///more code }); 
    } 
}); 

답변

1
var loading = false; 
$(window).scroll(function() 
{ 
    if($(window).scrollTop() + $(window).height() == $(document).height()) 
    { 
     if(!loading){ 
     loading = true; 
     $(".loader").show().delay(700).fadeOut(); 
     $.ajax({ ///more code }) 
     .done(function(){ 
      loading = false; 
     }); 
     } 
    } 
}); 
+0

을 확인 ...이 일 것? –

+0

그건 잘 될거야. 너는 그걸 시도 할 수있어 .. –

+0

'.done()'나는 결코 생각하지 못했다. :) 이거 멋지다! 따라서 아약스 호출이 완료되었을 때만 트리거됩니다. –

0

이를 사용하지 않아야합니다 :

if($(window).scrollTop() + $(window).height() == $(document).height()) 

그러나이 : ​​

if($(window).scrollTop() + $(window).height() > $(document).height()) 

그리고 상태에 대한 VAR를 사용하고 난 웹 사이트에 여러 개의 스크롤이 그것을

+0

'if ($ (window) .scrollTop() + $ (window) .height()> $ (document) .height())'를 사용하는 이유는 정상적으로 페이지의 끝을 트리거하고 있습니다. –

관련 문제