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로 어떻게 해야 합니까?
이전 방식(1.7 이전):
$("...").attr("onclick", "").unbind("click");
새로운 방법(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()를 사용하십시오."
제거 중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
jquery 1.7을 사용하는 경우
$('html').off('click');
또 다른
$('html').unbind('click');
removeAttr을 사용하면 매우 쉽습니다.
$(element).removeAttr("onclick");
bind, unbind, on, off, click, attr, removeAtr, prop로 열심히 노력한 끝에 작동하게 되었습니다.다음과 같은 시나리오가 있습니다.내 html에는 클릭 핸들러에 인라인을 연결하지 않았습니다.
그런 다음 Javascript에서 인라인 온클릭 핸들러를 추가하기 위해 다음을 사용했습니다.
$(element).attr('onclick','myFunction()');
나중에 자바스크립트에서 이를 제거하기 위해 다음을 사용했습니다.
$(element).prop('onclick',null);
이것이 제가 자바스크립트에서 클릭 이벤트를 동적으로 바인딩하고 바인딩 해제하는 방식입니다.요소에 인라인 온클릭 핸들러를 삽입하지 마십시오.
클릭 이벤트가 직접 요소에 있는 것이 아니라 상위 요소에서 발생한 경우 어떻게 됩니까?이렇게 하면 됩니다.
$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
e.preventDefault();
e.stopPropagation();
return false;
});
ID로 온클릭 이벤트의 바인딩을 해제한 후 다음을 사용합니다.
$('#youLinkID').attr('onclick','').unbind('click');
클래스별로 온클릭 이벤트의 바인딩을 해제한 후 다음을 사용하십시오.
$('.className').attr('onclick','').unbind('click');
언급URL : https://stackoverflow.com/questions/1687790/how-to-remove-onclick-with-jquery
'programing' 카테고리의 다른 글
모든 agax.load() 요청이 완료된 후 기능 실행 (0) | 2023.09.03 |
---|---|
Spring Security의 SecurityContextHolder: 세션 또는 요청 바인딩? (0) | 2023.09.03 |
선택 후 부트스트랩 날짜 선택기 숨기기 (0) | 2023.09.03 |
PowerShell - 복사 항목 '폴더가 이미 있습니다' 오류 표시 안 함 (0) | 2023.09.03 |
Python, PowerShell 또는 기타? (0) | 2023.09.03 |