Question

Code PHP:

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

Je veux supprimer le onclick="check($id,1) de sorte que le lien ne peut pas être cliqué ou « check($id,1) ne sera pas tiré. Comment puis-je faire avec JQuery?

Était-ce utile?

La solution

Old Way (pré-1.7):

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

New Way (+ 1,7):

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

(remplacer ... par le sélecteur dont vous avez besoin.)

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

Autres conseils

Je sais que c'est assez vieux, mais quand un étranger perdu trouve cette question à la recherche d'une réponse (comme je l'ai fait) alors c'est la meilleure façon de le faire, au lieu d'utiliser removeAttr ():

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

jQuerys Doku officiel :

  

"Suppression d'un gestionnaire d'événements en ligne à l'aide onclick .removeAttr () ne réalise pas l'effet désiré dans Internet Explorer 6, 7 ou 8. Pour éviter d'éventuels problèmes, utilisez .prop () au lieu"

si vous utilisez jquery 1.7

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

autre

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

Suppression de propriété onclick

Supposons que vous avez ajouté votre ligne d'événement click, comme ceci:

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

Ensuite, vous pouvez supprimer l'événement comme celui-ci:

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

Suppression des écouteurs d'événement click

Supposons que vous avez ajouté votre événement de clic en définissant un écouteur d'événement, comme ceci:

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

... ou comme ceci:

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

Ensuite, vous pouvez supprimer l'événement comme celui-ci:

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

Retrait à la fois

Si vous êtes incertain comment votre événement a été ajouté, vous pouvez combiner les deux, comme ceci:

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

Il est très facile en utilisant removeAttr.

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

Après avoir essayé si dur avec bind, délie, on, off, cliquez, attr, removeAttr, prop je l'ai fait travailler. , J'ai tellement le scénario suivant: Dans mon html j'ai pas attaché tous les gestionnaires onclick inline.

Alors dans mon Javascript i utilisé ce qui suit pour ajouter un gestionnaire onclick en ligne:

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

Pour supprimer ce à un stade ultérieur de Javascript je suit:

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

Ceci est la façon dont il a fonctionné pour moi de lier et les événements de clic unbind en Javascript dinamically. Rappelez-vous de ne pas insérer un gestionnaire onclick en ligne dans vos éléments.

Et si l'événement onclick est pas directement sur l'élément, mais de l'élément parent? Cela devrait fonctionner:

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

Essayez si vous déliez l'événement onclick par ID Ensuite, utilisez:

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

Essayez si vous déliez l'événement onclick par classe Ensuite, utilisez:

$('.className').attr('onclick','').unbind('click');
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top