JQuery로 "onclick"을 제거하는 방법은 무엇입니까?
PHP 코드 :
<a id="a$id" onclick="check($id,1)" href="javascript:void(0)" class="black">Qualify</a>
onclick="check($id,1)
링크를 클릭 할 수 없습니다 " check($id,1)
해고 하지 않도록 제거하고 싶습니다 . JQuery로 어떻게 할 수 있습니까?
Old Way (1.7 이전) :
$("...").attr("onclick", "").unbind("click");
New Way (1.7+) :
$("...").prop("onclick", null).off("click");
(...을 필요한 선택기로 바꾸십시오.)
// use the "[attr=value]" syntax to avoid syntax errors with special characters (like "$")
$('[id="a$id"]').prop('onclick',null).off('click');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a id="a$id" onclick="alert('get rid of this')" href="javascript:void(0)" class="black">Qualify</a>
나는 낯선 사람이 대답을 찾고있는 것처럼 보이는 것을 발견하면 (내가 한 것처럼) removeAttr ()을 사용하는 대신 가장 좋은 방법입니다.
$element.prop("onclick", null);
jQuerys 공식 문서 인용 :
".removeAttr ()을 사용하여 인라인 onclick 이벤트를 제거하면 Internet Explorer 6, 7 또는 8에서 원하는 효과를 얻을 수 없습니다. 대신 .prop ()를 사용하십시오."
jquery 1.7을 사용하는 경우
$('html').off('click');
그밖에
$('html').unbind('click');
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에서는 인라인을 온 클릭에서 첨부하지 않습니다.
그런 다음 Javascript에서 다음을 사용하여 인라인 onclick을 추가했습니다.
$(element).attr('onclick','myFunction()');
나중에 Javascript에서 제거하기 위해 다음을 사용했습니다.
$(element).prop('onclick',null);
이것이 자바 펼쳐에서 클릭 이벤트를 다이내믹하게 바인딩 및 바인딩 해제하는 작업입니다. 인라인 onclick 요소를 삽입하지 않습니다.
onclick 이벤트가 직접 요소에 있지 않고 상위 요소에서 나온다면 어떻게 될까요? 이것은 작동합니다.
$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
e.preventDefault();
e.stopPropagation();
return false;
});
ID로 onclick 이벤트의 바인딩을 해제하는 경우 이것을 시도한 다음 다음을 사용하십시오.
$('#youLinkID').attr('onclick','').unbind('click');
클래스별로 onclick 이벤트의 바인딩을 해제하면 이것을 시도한 다음 다음을 사용하십시오.
$('.className').attr('onclick','').unbind('click');
참고 URL : https://stackoverflow.com/questions/1687790/how-to-remove-onclick-with-jquery
'IT' 카테고리의 다른 글
Flash가 설치되어 있는지 확인하고있는 경우 사용자에게 알리는 숨겨진 div를 표시해야 할 것입니까? (0) | 2020.09.08 |
---|---|
C #의 .resx 파일에서 읽기 읽기 (0) | 2020.09.08 |
grunt throw "Recursive process.nextTick detected" (0) | 2020.09.08 |
git diff 두 파일을 동일한 분기, 동일한 커밋 (0) | 2020.09.08 |
이 프로그램은 어떻게 작동합니까? (0) | 2020.09.08 |