두 번째 body.on()이 작동하지 않는 이유는 무엇입니까? 두 마우스 휠 이벤트가 하나의 마우스 휠 다운 이벤트로 트리거되지 않았기 때문에 .off()를 추가했습니다. 두 번째 body.on()은 .off()를 다시 설정해야합니까? 어떻게 프로그램해야합니까?Jquery에서 .off()를 호출 한 후 이벤트 처리기를 재설정하는 방법
$(document).ready(function() {
$("body").on('mousewheel', function(event, delta) {
if (event.deltaY < 0) {
if (!$(".both").hasClass('rotated')) {
$(".both").css('transform', 'rotate(180deg)');
setTimeout(function() { $(".both").addClass('rotated') }, 1000);
}
}
$("body").off();
});
$("body").on('mousewheel', function(event, delta) {
if (event.deltaY < 0) {
if ($(".both").hasClass('rotated')) {
alert("a");
}
}
});
});
내가 선택한 답변
$(document).ready(function() {
function handleWheel(event) {
if (event.deltaY < 0) {
if (!$(".both").hasClass('rotated')) {
$(".both").css('transform', 'rotate(180deg)');
setTimeout(function() { $(".both").addClass('rotated') }, 1000);
}
}
// disengage just this event handler and no others
$("body").off('mousewheel', handleWheel);
};
function handleWheelNoche(event) {
if (event.deltaY < 0) {
if ($(".both").hasClass('rotated')) {
setTimeout(function() { $(".black").addClass('noche') }, 1000);
}
}
};
$("body").on('mousewheel', handleWheel);
$("body").on('mousewheel', handleWheelNoche);
});
귀하의 질문이 명확하지 않다. 둘 다 실행하지 않으려면 왜 "mousewheel"에 두 개의 핸들러를 추가합니까? – Pointy
동일한 body.on() 내에서 그것을 할 방법을 찾지 못했습니다 body.off() 실행을 다음 단계를 중지 할 수 있습니다. – Elemenofi