Comment empêcher le défaut dans une méthode onclick? J'ai une méthode dans laquelle je passe également une valeur personnalisée
<a href="#" onclick="callmymethod(24)">Call</a>
function callmymethod(myVal){
//doing custom things with myVal
//here I want to prevent default
}
javascript
coure2011
la source
la source
onLoaded
àno wrap
. Ou écrivez simplement votre propre balisage .html à la place.preventDefault
, la question est de savoir comment «empêcher [le] clic par défaut» .À mon avis, la réponse est fausse! Il a demandé
event.preventDefault();
quand vous retournez simplement faux; ça appelleevent.preventDefault();
ETevent.stopPropagation();
aussi!Vous pouvez le résoudre par ceci:
<a href="#" onclick="callmymethod(event, 24)">Call</a>
function callmymethod(e, myVal){ //doing custom things with myVal //here I want to prevent default e = e || window.event; e.preventDefault(); }
la source
window.event
ce qui n'est pas toujours disponible sur tous les navigateurs.Essayez ceci (mais veuillez utiliser des boutons pour de tels cas si vous n'avez pas de
href
valeur valide pour une dégradation progressive )<a href="#" onclick="callmymethod(24); return false;">Call</a>
la source
return false;
? À quoi retournons-nous même faux?Vous pouvez attraper l'événement et le bloquer avec preventDefault () - fonctionne avec du Javascript pur
document.getElementById("xyz").addEventListener('click', function(event){ event.preventDefault(); console.log(this.getAttribute("href")); /* Do some other things*/ });
la source
Placez simplement "javascript: void (0)", à la place de "#" dans la balise href
<a href="javascript:void(0);" onclick="callmymethod(24)">Call</a>
la source
Cela a fonctionné pour moi
<a href="javascript:;" onclick="callmymethod(24); return false;">Call</a>
la source
Vous pouvez utiliser:
event.stopPropagation();
https://dom.spec.whatwg.org/#dom-event-stoppropagation
la source
Il serait trop fastidieux de modifier les utilisations des fonctions dans toutes les pages html en
return false
.Voici donc une solution testée qui ne corrige que la fonction elle-même:
function callmymethod(myVal) { // doing custom things with myVal // cancel default event action var event = window.event || callmymethod.caller.arguments[0]; event.preventDefault ? event.preventDefault() : (event.returnValue = false); return false; }
Cela empêche correctement IE6, IE11 et le dernier Chrome de visiter une
href="#"
fois le gestionnaire d'événements onclick terminé.Crédits:
la source
Si vous avez besoin de le mettre dans l'étiquette. Ce n'est pas la meilleure solution, mais cela fonctionnera.
Assurez-vous de placer l'événement onclick devant le href. Seulement travaillé pour moi de cette façon.
<a onclick="return false;" href="//www.google.de">Google</a>
la source
Une autre façon de faire est d'utiliser l'
event
objet à l'intérieur de l'attributonclick
(sans avoir besoin d'ajouter un argument supplémentaire à la fonction pour passer l'événement)function callmymethod(myVal){ console.log(myVal); }
<a href="#link" onclick="event.preventDefault();callmymethod(24)">Call</a>
la source
Donnez une classe ou un id à l'élément et utilisez la fonction jquery unbind ();
$(".slide_prevent").click(function(){ $(".slide_prevent").unbind(); });
la source