Il y a deux événements de clic. Le grand p contient le petit p. Si vous cliquez sur le petit p, le grand sera également déclenché. Comment y faire face ?
Comme le montre la figure, si vous cliquez sur le clic à l'intérieur du petit p, le grand p sera également déclenché. Maintenant, vous souhaitez uniquement cliquer sur le petit p et seul le petit événement de clic sera déclenché. il?
Maintenant
stopPropagation()
Le déclenchement d'un certain type d'événement sur un objet (comme un clic sur
onclick
事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true
,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document
对象(有些浏览器是window
) est appelé bouillonnement d'événement.est l'événement bouillonnant (capture) de JS
Une solution comme celle-ci est assez simple
js bouillonnant, annulez simplement le bouillonnement
Utilisez la délégation d'événement et ce problème ne se produira pas
Viens me voir si tu ne comprends pas après avoir lu ces deux articles :
Je pense à deux solutions :
1. Empêcher les événements de bouillonner.
Le bouillonnement d'événement est exécuté étape par étape de l'élément enfant interne à l'élément parent externe. Lors de l'exécution de l'événement de clic de l'élément enfant, l'événement de blocage de bouillonnement doit être appelé, afin que l'événement ne puisse pas être transmis à la couche supérieure. exécuter l'événement de couche supérieure.
2. Exécutez différents événements en fonction de l'élément qui a provoqué le clic.
Lorsque l'élément cliqué est provoqué par un élément enfant, l'événement A est exécuté. S'il ne s'agit pas d'un élément enfant, l'événement B est exécuté.
Arrêtez simplement de bouillonner. Pour plus d'informations sur l'incident, veuillez consulter ici /a/11...
Selon la pratique normale, il ne sera pas déclenché comme ça. Je veux vraiment savoir quel sélecteur vous utilisez pour lier l'événement de clic. Il serait préférable que vous publiiez votre code de clic et le code html de votre p
.