t e.stopPropagation() en jquery fonctionne sur la balise d'ancrage
je veux éviter eventpropogation d'élément à l'intérieur d'une balise d'ancrage, j'essaie d'utiliser l'e.stopPropagation(); il semble ne pas fonctionner, est-il possible ou je suis juste de perdre du temps s'il vous plaît aidez-moi sortir d'ici
javascript est:
$(document).ready(function(){
$('.alink .p').click(function(e){
alert("hi");
e.stopPropagation();
});
html est :
<div>
<a href="http://google.com" class="alink" >Google links
<p class="p">Another Links to prevent default</p>
</a>
</div>
merci pour votre temps précieux
C'est
document
, pas "document"
, vous disposez d'erreur de syntaxe (manque });
), et si vous voulez empêcher lien de vous prendre pour une page, utilisez les e.preventDefault()
OriginalL'auteur spiderman | 2012-01-21
Vous devez vous connecter pour publier un commentaire.
event.stopPropagation()
cesse de passant l'événement, à des gestionnaires plus loin dans le DOM de la structure de l'élément, qui, à l'origine de l'événement a été déclenché. Il ne fait pas, bien que, à en prévenir l'action qui a déjà été déclenchée.Vous devez utiliser
event.preventDefault()
à l'arrêt mentionné ci-dessus d'action par défaut.Sources:
<a>
. Si vous appelez.stopPropagation()
sur un élément enfant de l'<a>
alors je vous attends à ce que l'action de ne jamais être déclenchées, en raison de laclick
événement doit jamais atteindre le point d'ancrage.avez-vous jamais trouver une solution à cela? En essayant de travailler avec exactement la même chose que vous.
OriginalL'auteur
Description
Vous avait quelques fautes d'orthographe dans votre script, et son
document
pas"document"
.Découvrez l'Échantillon, et cette jsFiddle de Démonstration
Échantillon
Plus D'Informations
return false;
lorsque vous voulez seulement éviter que l'action par défaut; il va interférer avec d'autres gestionnaires d'événements. Aussi, vous ne pouvez l'utiliser que sur la fin de la fonction, donc si il n'y a aucune erreur javascript, le navigateur va encore suivre le lien, qui peut être indésirable. Comme Esailija dit,e.preventDefault()
est la meilleure solution.Ma réponse est à jour, Merci!
OriginalL'auteur
essayer cette
OriginalL'auteur
vous devez utiliser-
e.preventDefault()
pour arrêter le comportement par défaut. stopPropagation est utilisé pour arrêter la remontée d'événements.OriginalL'auteur
Vous avez manqué l'enfermant entre parenthèses ici, n'est-ce pas?
Fixer les crochets, puis d'utiliser l'e.preventDefault() à la place.
OriginalL'auteur