여기 있습니다 :
http://jsfiddle.net/hamoom/qX6bn/
$(function(){
var alerted = false;
$(window).scroll(function(){
var aTop = $('.ad').height();
if($(this).scrollTop()>=aTop && !alerted){
alerted = true;
alert('header just passed.');
}
else if($(this).scrollTop()<=aTop && alerted){
alerted = false;
}
});
});
나는 그 경고를 계속해서 발생시키지 않도록 플래그를 사용합니다. "else"블록에서 재설정하여 위로 스크롤하면 동일한 경고를 다시받을 수 있습니다.
-------------------$(function(){
var alerted = false;
$(window).scroll(function(){
var aTop = $('.ad').height();
if($(this).scrollTop()>=aTop && !alerted){
alerted = true;
alert('header just passed.');
}
});
});
-------------------다음 on
과off
같이 사용해야합니다 .
$(window).on('scroll.foo', function(){
// stop this once and for all!
if( something == true )
$(window).off('scroll.foo');
});
위에 표시된 것처럼 이벤트를 바인딩 할 때 범위를 사용해야하므로 나중에 동일한 개체 ( 이 경우 window 개체 )에 바인딩 될 수도있는 정확한 이벤트에 손상을주지 않고 바인딩을 해제 할 수 있습니다 .
특정 조건이 충족되면 리스너가 존재하지 않으므로 콜백이 실행되지 않습니다.
출처
https://stackoverflow.com/questions/22029814