Code PHP:
<a id="a$id" onclick="check($id,1)" href="javascript:void(0)" class="black">Qualify</a>
Je souhaite supprimer le onclick="check($id,1)
afin que le lien ne puisse pas être cliqué ou que "check($id,1)
" ne soit pas déclenché. Comment puis-je le faire avec JQuery?
Old Way (avant 1.7):
$("...").attr("onclick", "").unbind("click");
Nouvelle manière (1.7+):
$("...").prop("onclick", null).off("click");
(Remplacez ... 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>
Je sais que c'est assez ancien, mais lorsqu'un étranger perdu trouve cette question à la recherche d'une réponse (comme moi), c'est la meilleure façon de le faire, au lieu d'utiliser removeAttr ():
$element.prop("onclick", null);
Citer doku officiel de jQuerys :
"La suppression d'un gestionnaire d'événements en ligne onclick à l'aide de .removeAttr () n'obtient pas l'effet souhaité dans Internet Explorer 6, 7 ou 8. Pour éviter tout problème, utilisez plutôt .prop ()"
si vous utilisez jquery 1.7
$('html').off('click');
else
$('html').unbind('click');
onclick
Supposons que vous ajoutiez votre événement click en ligne, comme ceci:
<button id="myButton" onclick="alert('test')">Married</button>
Ensuite, vous pouvez supprimer l'événement comme ceci:
$("#myButton").prop('onclick', null); // Removes 'onclick' property if found
click
Supposons que vous ajoutiez votre événement click 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 ceci:
$("#myButton").off('click'); // Removes other events if found
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
C'est très facile avec removeAttr.
$(element).removeAttr("onclick");
Après avoir essayé si fort avec bind, unbind, on, off, cliquez sur, attr, removeAttr, prop, je l'ai fait fonctionner. Donc, j'ai le scénario suivant: Dans mon html, je n'ai attaché aucun gestionnaire inline onclick.
Ensuite, dans mon code javascript, j’ai utilisé ce qui suit pour ajouter un gestionnaire inline onclick:
$(element).attr('onclick','myFunction()');
Pour supprimer cela plus tard de Javascript, j'ai utilisé ce qui suit:
$(element).prop('onclick',null);
C'est ainsi que cela a fonctionné pour moi de lier et de dissocier des événements de clic de manière dinamique en Javascript. N'oubliez pas de ne pas insérer de gestionnaire onclick en ligne dans vos éléments.
Que se passe-t-il si l'événement onclick n'est pas directement sur l'élément, mais à partir de 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 dissociez 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');