Comment supprimer “onclick” avec JQuery?

code php:

Qualify 

Comment supprimer onclick="check($id,1) afin de ne pas cliquer sur” Qualify “ou” check($id,1)check($id,1) ne sera pas lancé. Comment le faire avec JQuery?

Old Way (pré-1.7):

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

New Way (1.7+):

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

(Remplacez … avec 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'); 
  Qualify 

Je sais que c’est assez vieux, mais quand un inconnu 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); 

Citant le doku officiel de jQuerys :

“La suppression d’un gestionnaire d’événements onclick en ligne à l’aide de .removeAttr () n’aboutit pas à l’effet souhaité dans Internet Explorer 6, 7 ou 8. Pour éviter tout problème potentiel, utilisez plutôt .prop ()”

si vous utilisez jquery 1.7

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

autre

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

Supprimer la propriété onclick

Supposons que vous avez ajouté votre événement de clic en ligne, comme ceci:

  

Ensuite, vous pouvez supprimer l’événement comme ceci:

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

Supprimer les écouteurs d’événements de click

Supposons que vous ayez ajouté votre événement click en définissant un écouteur d’événement, comme ceci:

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

… ou comme ça:

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

Ensuite, vous pouvez supprimer l’événement comme ceci:

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

Enlever les deux

Si vous ne savez pas 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 

Après avoir essayé si fort avec bind, détaché, activé, désactivé, cliqué, attr, removeAttr, prop je l’ai fait fonctionner. Donc, j’ai le scénario suivant: Dans mon HTML, je n’ai pas attaché de gestionnaires en ligne onclick.

Ensuite, dans mon Javascript, j’ai utilisé ce qui suit pour append un gestionnaire onclick en ligne:

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

Pour supprimer cela plus tard de Javascript, j’ai utilisé ce qui suit:

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

C’est la façon dont cela a fonctionné pour moi de relier et de dissocier les événements de clic en mode JavaScript. N’oubliez pas de ne pas insérer de gestionnaire inclick en ligne dans vos éléments.

Il est très facile d’utiliser removeAttr.

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

Que faire si l’événement onclick n’est pas directement sur l’élément, mais depuis l’élément parent? Cela devrait fonctionner:

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

Essayez ceci si vous annulez l’événement onclick par ID Puis utilisez:

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

Essayez ceci si vous dissociez l’événement onclick par Class Puis utilisez:

 $('.className').attr('onclick','').unbind('click');