Maison > Questions et réponses > le corps du texte
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
给我你的怀抱2017-05-27 17:46:35
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.
//阻止事件冒泡函数
function stopBubble(e)
{
if (e && e.stopPropagation)
e.stopPropagation()
else
window.event.cancelBubble=true
}
迷茫2017-05-27 17:46:35
est l'événement bouillonnant (capture) de JS
Une solution comme celle-ci est assez simple
$('.p1').on('click', function(event) {
event.preventDefault();
if ($(event.target).is('.p2')) {
alert('click 2')
}else{
alert('click 1')
}
});
PHP中文网2017-05-27 17:46:35
js bouillonnant, annulez simplement le bouillonnement
Utilisez la délégation d'événement et ce problème ne se produira pas
为情所困2017-05-27 17:46:35
Viens me voir si tu ne comprends pas après avoir lu ces deux articles :
http://javascript.info/bubbli...
https://stackoverflow.com/que...
阿神2017-05-27 17:46:35
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é.
淡淡烟草味2017-05-27 17:46:35
Arrêtez simplement de bouillonner. Pour plus d'informations sur l'incident, veuillez consulter ici /a/11...
曾经蜡笔没有小新2017-05-27 17:46:35
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
.