문제

문제가 있습니다. 기본적으로 사용자가 페이지에서 '편집'링크를 클릭하면 다음 jQuery 코드가 실행됩니다.

$("#saveBtn").click(function () {
    saveQuestion(id);
});

이렇게하면 저장 버튼의 onclick 이벤트가 saveQuestion() '편집'링크를 클릭 한 질문의 ID를 메소드와 전달합니다.

그러나 같은 세션에서 사용자가 2 개의 질문에서 편집을 클릭하면 이전을 덮어 쓰는 대신 click 이벤트 핸들러, 대신 2 개의 이벤트 핸들러가 실행되며, 하나는 호출 할 수 있습니다. saveQuestion(1) 그리고 다른 하나는 전화 할 수 있습니다 saveQuestion(2). 이 하나의 질문을 수행함으로써 다른 질문은 다른 질문을 덮어 씁니다.

이전의 모든 것을 제거하는 방법이 있습니까? click 버튼에 할당 된 이벤트?

도움이 되었습니까?

해결책

당신은 사용할 것입니다 끄다() SO와 같은 이벤트를 제거하려면 :

$("#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)
});

jQuery를 사용하십시오 끄다 그리고 ~에

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top