Je veux empêcher les liens d'ouvrir des pages. Alors j'ai écrit ceci:
$("a").click(function(e) {
e.preventDefault()
}
qui est genial! Mais cela bloque mon autre événement:
$(".toolbar a").click(function(e) {
...action...
}
Bien sûr, je peux ajouter mon action au premier événement avec un test, mais existe-t-il un moyen élégant d'empêcher l'exécution de l'événement only href?
MODIFIER
En fait, ça marche, désolé. Voir @ raina77ow violon travaillant ici: http://jsfiddle.net/HeFS6/
Utilisez return false
à la place. Vous pouvez voir le code ci-dessous qui marche ici .
$("a").click(function() {
return false;
});
$(".toolbar a").click(function() {
alert("Do something");
});
Comme indiqué par @ raina77ow avec cet article , utiliser return false
équivaut à appeler event.preventDefault()
et également event.stopPropagation()
. Comme j’ai eu des problèmes sans return false
avec certains codes par le passé, je le suggère toujours.
Mais la chose la plus importante ici est l'ordre de liaison: votre dernière liaison sera votre premier code exécuté. Alors, prenez-en soin et partez.
Au lieu de e.preventDefault()
, avez-vous essayé return false
? Cela devrait également empêcher le comportement par défaut du navigateur.
Il n'y a pas d'événement href. C’est ce que vous obtiendriez si empêchaient d’être défectueux au clic. Vous devriez juste utiliser des sélecteurs plus spécifiques.