Si j'ai une boîte de message flottante et que je vous demande si vous cliquez sur le texte du paragraphe dans cette case, vous enregistrez également un clic sur son élément parent de JQuery ou si je dois ajouter des auditeurs pour les éléments de l'enfant.
maintenant si je clique sur le texte dans le code> ou dans le Mise à jour 2: < / forte> Puis-je arrêter ce comportement ?? p> Mise à jour 3: Strong> Voici le violon que j'ai allongé: Http:/jsfiddle.net/mztby/ - Il existe maintenant un moyen d'arrêter la propagation après avoir atteint un certain niveau? Ainsi, cliquez sur le code> serait correct, mais en cliquant sur le
code> va-t-il toujours déclencher en tant que clic sur
$ ('# msgbox') code>? p>
code> ne ferait rien? - en quelque sorte comme
$ ('# msgbox: nième enfant'). Cliquez sur (Fonction (E) {E.StopPropagation ();}); Code> P> P> P>
3 Réponses :
Par défaut, Events "Bubble" en JavaScript. Ils tirent au niveau que vous déclenchez puis une à la fois par des éléments parents. p>
Pour plus d'informations sur l'événement Boubillage: http://www.quirksmode.org/js/events_order .html p>
Pour arrêter: empêcher "Boubillage"? P>
Génial merci pour la pointe et le lien.
Si vous souhaitez l'arrêter de bulles d'utilisation
e.stopPropagation();
impressionnant. Y a-t-il un moyen d'arrêter la propagation après avoir atteint un certain niveau? Ainsi, cliquez sur le code> serait correct, mais en cliquant sur le
code> ne ferait rien?
Voici un exemple sur jsfiddle note qui clique sur sur le #msgbox Mise à jour strong>: Voici une mise à jour de votre violon qui montre la même chose. P> < / p>
frais. Et si le contenu est dynamique, et je ne sais pas que c'est un
Ensuite, donnez-lui un identifiant, un nom de classe ou la sélectionner d'une autre manière. Peu importe la manière dont vous faites l'objet JQuery - une fois que vous l'avez, liez un gestionnaire de clic et utilisez StopPropagation. Si vous ajoutez le contenu dynamique après i> vous liez vos événements, vous devez utiliser
Ok ça a du sens, mais je ne suis pas certain de la manière dont je peux sélectionner "tous les arrière-petits-enfants", y a-t-il une fonction JQuery pour cela? - À la deuxième pensée, je pense que je m'éloigne un peu de la question initiale, alors je vais en avoir creusé à cet égard. - merci pour l'aide @lee
"Tous les arrière-petits-enfants de #msgbox":
code> ne sera pas. En effet, nous avons appliqué un gestionnaire directement à la portée et appelé
stoppropagation () code> sur cet événement pour empêcher l'action de bouillonnée normale. P>
code> qui est à l'intérieur?
.Live (" Cliquez sur ", fonction (EVT) {...};) code>
au lieu de .Cliquez sur (fonction (EVT) {...}) code>
.
$ ('# msgbox> *> *> *') code>. Découvrez le JQUERY SELECTORS Page DOC pour plus de détails sur tous les différents sélecteurs de jQuery disponibles.
Voici une deuxième pensée: Y a-t-il un moyen de l'empêcher si le texte à l'intérieur est dynamique?