programing

jquery 이벤트 핸들러 덮어쓰기 방법

elecom 2023. 9. 20. 20:06
반응형

jquery 이벤트 핸들러 덮어쓰기 방법

간단한 코드로 문제를 설명해 보겠습니다.

var fireClick = function() { alert('Wuala!!!') };

$('#clickme').click(fireclick);
$('#clickme').click(fireclick);

그래서 지금은 분명히 2번 경고할 것이지만 나는 1번만 경고가 필요합니다.많은 방법을 시도했지만 결과는 없었습니다.

감사해요.

jQuery 1.7 기준으로 이벤트 핸들러를 제거하고 추가하기 위해 사용해야 하지만, 여전히 사용할 수 있습니다.click속기의

$('#clickme').off('click').on('click', fireclick);
$('#clickme').off().on('click', fireclick);

원래 답변:

모든 클릭 핸들러를 바꾸려면 함수 인수 없이 먼저 unbind를 호출합니다.모든 이벤트 핸들러를 바꾸려면 이벤트 유형을 지정하지 마십시오.

$('#clickme').unbind('click').click(fireclick);
$('#clickme').unbind().click(fireclick);

네임스페이스를 사용하여 다른 수신기를 제거하지 않도록 합니다.

$('#clickme').off('click.XXX').on('click.XXX', fireclick);

다른 코드가 사용되지 않는 한XXX, 당신이 알지 못했던 다른 행동들을 망치지 않았다는 것을 확신할 수 있습니다.

jQuery 함수 unbind를 사용하여 첫 번째 이벤트를 제거할 수 있습니다.

var fireClick = function() { alert('Wuala!!!') };

$('#clickme').click(fireclick);
$('#clickme').unbind('click', fireClick); // fireClick won't fire anymore...
$('#clickme').click(fireclick); // ...but now it will

추가 전화를 없애려고 노력하지만, 매번 두 전화를 모두 할 수 있는 시간이 부족합니다.

$('#clickme').unbind('click', fireclick);
$('#clickme').click(fireclick);
$(document).off('click', '#clickme').on('click', '#clickme', fireclick);

setInterval을 사용해야 합니다.문제는 두 개의 알림이 동시에 팝업으로 표시될 수 없다는 것입니다.첫번째가 먼저 닫히거나 두번째가 화면에 나타나지 않습니다.

언급URL : https://stackoverflow.com/questions/741628/how-to-overwrite-jquery-event-handlers

반응형