문제 대기 시간이 다시 실행되기 전에 실행이 완료되었습니다.
-
03-07-2019 - |
문제
$ (창) .scroll ()을 사용하고 있습니다. 사용자가 상단 또는 하단에 너무 가까이 스크롤 할 때 호출 할 함수를 지정합니다.
함수는 실행하는 데 1 초가 걸리고 스크롤을 계속하면 첫 번째가 완료되기 전에 여러 번 실행됩니다.
함수가 실행을 시작한 다음 $ (창) .scroll () 함수를 다시 실행하기 전에 대기해야한다고 말할 수있는 방법이 있습니까?
해결책
스크롤 위치를 이미 확인하고있는 부울을 설정할 수 있습니다.
checkingPosition = false;
$window.scroll(function() {
if(checkingPosition) return;
checkingPosition = true;
//do stuff
checkingPosition = false;
});
다른 팁
데이터를 객체에 캡슐화하여 범위 문제/혼동을 피하기 위해 이와 같은 일을 할 것입니다 ...이 경우 jQuery 객체 (창 요소의) :
$(function() {
$(window).data('checking_scroll',false);
$(window).scroll(function() {
if($(this).scrollTop() >= 200 /* or whatever... */) {
if($(this).data('checking_scroll') === true) {
return false;
} else {
whatever_function();
}
}
});
});
function whatever_function() {
$(window).data('checking_scroll',true);
// do all your stuff...
$(window).data('checking_scroll',false);
}
...하지만 그게 나야.
제휴하지 않습니다 StackOverflow