반응형
jquery 이벤트 핸들러를 덮어 쓰는 방법
간단한 코드로 문제를 설명하겠습니다.
var fireClick = function() { alert('Wuala!!!') };
$('#clickme').click(fireclick);
$('#clickme').click(fireclick);
이제 분명히 두 번 경고하지만 한 번만 경고해야합니다. 많은 방법을 시도했지만 결과가 없습니다.
감사.
jQuery 1.7부터는 off 를 사용하여 이벤트 핸들러를 제거하고 on 을 사용하여 추가해야하지만 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 함수 바인딩 해제 를 사용 하여 첫 번째 이벤트를 제거 할 수 있습니다 .
var fireClick = function() { alert('Wuala!!!') };
$('#clickme').click(fireclick);
$('#clickme').unbind('click', fireClick); // fireClick won't fire anymore...
$('#clickme').click(fireclick); // ...but now it will
나는 여분의 호출을 제거하려고 노력하지만 tyhat이 부족하면 매번이 두 가지를 모두 호출 할 수 있습니다.
$('#clickme').unbind('click', fireclick);
$('#clickme').click(fireclick);
setInterval을 사용해야합니다. 문제는 동시에 두 개의 경고를 표시 할 수 없다는 것입니다. 첫 번째는 먼저 닫아야하고 두 번째는 화면에 나타나지 않습니다.
참고 URL : https://stackoverflow.com/questions/741628/how-to-overwrite-jquery-event-handlers
반응형
'Program Tip' 카테고리의 다른 글
.NET에서 기본 프린터를 얻는 가장 좋은 방법은 무엇입니까? (0) | 2020.10.23 |
---|---|
GUID에는 몇 개의 문자가 있습니까? (0) | 2020.10.23 |
두 필드의 고유성을 확인하는 방법 (0) | 2020.10.23 |
정기적으로 실행되도록 작업을 예약하려면 어떻게합니까? (0) | 2020.10.23 |
주어진 인덱스에 존재하는 경우 ArrayList 대체 요소? (0) | 2020.10.23 |