Frage

PHP-Code:

<a id="a$id" onclick="check($id,1)" href="javascript:void(0)"  class="black">Qualify</a>

Ich mag die onclick="check($id,1) entfernen, so dass die Verbindung nicht angeklickt werden kann, oder „check($id,1) nicht abgefeuert werden. Wie kann ich es mit JQuery tun?

War es hilfreich?

Lösung

Old Way (pre-1.7):

$("...").attr("onclick", "").unbind("click");

New Way (1.7 +):

$("...").prop("onclick", null).off("click");

(Ersetzen ... mit dem Wähler die Sie benötigen.)

// 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>

Andere Tipps

Ich weiß, das ist ziemlich alt, aber als ein verlorener Fremde findet diese Frage nach einer Antwort suchen (wie ich), dann ist dies der beste Weg, es zu tun, anstatt mit removeAttr ():

$element.prop("onclick", null);

Unter Berufung auf jQuerys offiziell doku :

  

"Entfernen eines Inline-Onclick-Ereignishandler mit .removeAttr () erreichen nicht die gewünschte Wirkung in Internet Explorer 6, 7 oder 8 mögliche Probleme zu vermeiden, verwenden .prop () statt"

Wenn Sie mit Jquery 1.7

$('html').off('click');

sonst

$('html').unbind('click');

Entfernen von onclick Eigenschaft

Angenommen, Sie Ihre Klickereignis inline hinzugefügt, wie folgt aus:

<button id="myButton" onclick="alert('test')">Married</button>

Dann können Sie das Ereignis wie folgt entfernen:

$("#myButton").prop('onclick', null); // Removes 'onclick' property if found

Entfernen von click Ereignis-Listener

Angenommen, Sie Ihre Click-Ereignis hinzugefügt einen Ereignis-Listener durch die Definition, wie folgt aus:

$("button").on("click", function() { alert("clicked!"); });

... oder wie folgt aus:

$("button").click(function() { alert("clicked!"); });

Dann können Sie das Ereignis wie folgt entfernen:

$("#myButton").off('click');          // Removes other events if found

Entfernen von sowohl

Wenn Sie unsicher sind, wie Sie Ihre Veranstaltung hinzugefügt wurde, können Sie beides kombinieren, wie folgt aus:

$("#myButton").prop('onclick', null)  // Removes 'onclick' property if found
              .off('click');          // Removes other events if found

Es ist sehr einfach removeAttr verwendet wird.

$(element).removeAttr("onclick");

Nach so hart mit binden versucht, entbinden, an, aus, klicken Sie auf, attr, removeAttr, stütze ich habe es zu arbeiten. Also, ich habe folgendes Szenario vor: In meinem html ich keinen Inline-Onclick-Handler angeschlossen habe.

Da ist in meinem Javascript habe ich die folgenden ein Inline-Onclick-Handler hinzuzufügen:

$(element).attr('onclick','myFunction()');

Um diese zu entfernen zu einem späteren Zeitpunkt von Javascript habe ich die folgenden:

$(element).prop('onclick',null);

Das ist so, wie es für mich gearbeitet zu dinamically in Javascript zu binden und unbind Click-Ereignisse. Denken Sie daran, nicht alle Inline-Onclick-Handler in Ihre Elemente einzufügen.

Was passiert, wenn Onclick-Ereignis nicht direkt auf das Element ist, sondern aus übergeordneten Element? Dies sollte funktionieren:

$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
    e.preventDefault();
    e.stopPropagation();
    return false;
});

Versuchen Sie dies, wenn Sie das Onclick-Ereignis von ID Dann unbind verwenden:

$('#youLinkID').attr('onclick','').unbind('click');

Versuchen Sie dies, wenn Sie das Onclick-Ereignis von Klasse Dann unbind verwenden:

$('.className').attr('onclick','').unbind('click');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top