IT

JQuery로 "onclick"을 제거하는 방법은 무엇입니까?

lottoking 2020. 9. 8. 08:16
반응형

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

반응형