programing

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

muds 2023. 9. 3. 16:38
반응형

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

반응형