2013-07-24 3 views
-1

아래는 제가 페이지의 끝 부분에 있는지를 감지 할 수있는 자바 스크립트입니다 만, 인터넷 익스플로러 나 사파리에서 실행 중일 때 똑같은 스크립트가 잘 동작하고있을 때 두 번 실행됩니다 파이어 폭스와 크롬. 그것이 잘못되었을 수도있는 곳을 알아낼 수 없습니까?scrollTop이 브라우저 간 문제를 일으키고 있습니다

$(window).scroll(function() { 
    if ($(window).scrollTop() + $(window).height() == $(document).height()){ 
     somefunctionCall(); 
    } 
}); 
+2

는 * 코드 –

+0

* "위의 쿼리를"게시하는 것을 잊지 것 같은데? 어느 것 ? –

+1

$ (window) .scroll (function() { if ($ (window) .scrollTop() + $ (window) .height() == $ (document) .height()) { functionCall(); } }); – Vishrant

답변

0

스크롤 이벤트는 사용하지 않는 것이 좋습니다. 참조 : http://ejohn.org/blog/learning-from-twitter/

+0

대체 코드가 무엇입니까? 나는 페이지의 맨 아래에 도달하자마자 몇 가지 기능을 호출하고 싶었다. – Vishrant

+0

setTimeout을 사용하고 콜백에서 $ (window) .scrollTop()을 얻으십시오. – Gavriel

1

인터넷 탐색기에서 스크롤 할 때 스크롤 이벤트를 여러 번 실행할 수 있습니다. debounce (underscoreJs 또는 jQuery)를 사용하여 이벤트가 너무 자주 발생하지 않도록 할 수 있습니다.

예 :

$(window).scroll(jQuery.debounce(100, function() { 
    if ($(window).scrollTop() + $(window).height() == $(document).height()){ 
     functionCall(); 
    } 
})); 
+0

무엇이 debounce를 사용합니까, 나는 인터넷 검색 후에이 함수에 대한 명확한 그림을 얻지 못합니다. – Vishrant

+0

코드는 지정된 간격 (예 : 100 밀리 초) 내에 여러 번 호출되지 않도록합니다. –

+0

코드를 시도했지만 작동하지 않습니다. – Vishrant

관련 문제