jQuery를 사용하여 클릭 이벤트 핸들러를 모두 제거하는 방법은 무엇입니까?
문제가 생겼어요.기본적으로 사용자가 페이지에서 '편집' 링크를 클릭하면 다음 Jquery 코드가 실행됩니다.
$("#saveBtn").click(function () {
saveQuestion(id);
});
이렇게 하면 저장 버튼의 onClick 이벤트가 호출됩니다.saveQuestion()
메서드를 선택하고 '편집' 링크를 클릭한 질문의 ID를 전달합니다.
그러나 동일한 세션에서 사용자가 2개의 질문에 대해 편집을 클릭하면 이전 질문을 덮어쓰는 대신click
이벤트 핸들러 대신 2개의 이벤트 핸들러를 실행합니다. 하나는 호출할 수 있습니다.saveQuestion(1)
그리고 다른 사람이 전화할 수도 있습니다.saveQuestion(2)
이 질문 하나를 수행하면 다른 질문을 덮어씁니다.
이전의 모든 항목을 제거할 수 있는 방법이 있습니까?click
버튼에 할당된 이벤트?
off()를 사용하여 다음과 같은 이벤트를 제거할 수 있습니다.
$("#saveBtn").off("click");
그러나 이 요소에 바인딩된 클릭 이벤트는 모두 제거됩니다.SaveQuestion 기능이 바인딩된 유일한 이벤트인 경우 위의 이벤트가 수행됩니다.그렇지 않은 경우 다음을 수행합니다.
$("#saveBtn").off("click").click(function() { saveQuestion(id); });
버튼에 할당된 이전 클릭 이벤트를 모두 제거할 수 있는 방법이 있습니까?
$('#saveBtn').unbind('click').click(function(){saveQuestion(id)});
$('#saveBtn').off('click').click(function(){saveQuestion(id)});
만약 당신이...
$(function(){
function myFunc() {
// ... do something ...
};
$('#saveBtn').click(myFunc);
});
그러면 나중에 구속을 푸는 것이 더 쉬울 것입니다.
$('#saveBtn').off('click').on('click',function(){
saveQuestion(id)
});
언급URL : https://stackoverflow.com/questions/825112/how-to-remove-all-click-event-handlers-using-jquery
'programing' 카테고리의 다른 글
div에 대한 jQuery "눈 깜빡이는 하이라이트" 효과? (0) | 2023.08.28 |
---|---|
이동/이름 변경된 파일에 대해 Git Diff를 수행하는 방법은 무엇입니까? (0) | 2023.08.28 |
MySQL DDL을 Oracle DDL로 자동 변환하려면 어떻게 해야 합니까? (0) | 2023.08.28 |
CSS에서 텍스트와 밑줄 사이의 간격을 늘리는 방법 (0) | 2023.08.28 |
Jquery: Enter 키를 누를 때 클릭 이벤트를 트리거하는 방법 (0) | 2023.08.28 |