답변:
Old Way (1.7 이전) :
$("...").attr("onclick", "").unbind("click");
New Way (1.7+) :
$("...").prop("onclick", null).off("click");
(...을 필요한 선택기로 바꾸십시오.)
Removing an inline onclick event handler using .removeAttr() doesn't achieve the desired effect in Internet Explorer 6, 7, or 8. To avoid potential problems, use .prop() instead
.prop()
IE11에도 사용해야 했습니다.
나는 이것이 꽤 오래되었다는 것을 알고 있지만 길을 잃은 낯선 사람이 대답을 찾고있는이 질문을 발견하면 (내가 한 것처럼) removeAttr ()을 사용하는 대신 이것이 가장 좋은 방법입니다.
$element.prop("onclick", null);
jQuerys 공식 문서 인용 :
".removeAttr ()을 사용하여 인라인 onclick 이벤트 핸들러를 제거하면 Internet Explorer 6, 7 또는 8에서 원하는 효과를 얻을 수 없습니다. 잠재적 인 문제를 방지하려면 대신 .prop ()를 사용하십시오."
<span onlick="method()">sometext>/span>
이 행사는 완전히 unbinded하고 좋은 작품
onclick
속성 제거다음과 같이 클릭 이벤트를 인라인으로 추가했다고 가정합니다.
<button id="myButton" onclick="alert('test')">Married</button>
그런 다음 다음과 같이 이벤트를 제거 할 수 있습니다.
$("#myButton").prop('onclick', null); // Removes 'onclick' property if found
click
이벤트 리스너 제거다음과 같이 이벤트 리스너를 정의하여 클릭 이벤트를 추가했다고 가정합니다.
$("button").on("click", function() { alert("clicked!"); });
... 또는 다음과 같이 :
$("button").click(function() { alert("clicked!"); });
그런 다음 다음과 같이 이벤트를 제거 할 수 있습니다.
$("#myButton").off('click'); // Removes other events if found
이벤트가 어떻게 추가되었는지 확실하지 않은 경우 다음과 같이 두 가지를 결합 할 수 있습니다.
$("#myButton").prop('onclick', null) // Removes 'onclick' property if found
.off('click'); // Removes other events if found
removeAttr을 사용하는 것은 매우 쉽습니다.
$(element).removeAttr("onclick");
bind, unbind, on, off, click, attr, removeAttr, prop으로 열심히 노력한 후 작동하도록 만들었습니다. 그래서 다음과 같은 시나리오가 있습니다. 내 html에서는 인라인 onclick 핸들러를 첨부하지 않았습니다.
그런 다음 Javascript에서 다음을 사용하여 인라인 onclick 핸들러를 추가했습니다.
$(element).attr('onclick','myFunction()');
나중에 Javascript에서 이것을 제거하기 위해 다음을 사용했습니다.
$(element).prop('onclick',null);
이것이 자바 스크립트에서 클릭 이벤트를 다이내믹하게 바인딩 및 바인딩 해제하는 작업입니다. 요소에 인라인 onclick 핸들러를 삽입하지 마십시오.
.on('click', myFunction)
(참고 myFunction
입니다 하지 따옴표)를 한 후, 나중에,.off('click')
onclick 이벤트가 직접 요소에 있지 않고 상위 요소에서 나온다면 어떻게 될까요? 이것은 작동합니다.
$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
e.preventDefault();
e.stopPropagation();
return false;
});