javascript - Deux événements de clic. Le grand DIV contient le petit DIV. Si vous cliquez sur le petit DIV, le grand sera également déclenché.
某草草
某草草 2017-05-27 17:44:35
0
8
1322

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

某草草
某草草

répondre à tous(8)
伊谢尔伦

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.

//阻止事件冒泡函数
function stopBubble(e)
{
    if (e && e.stopPropagation)
        e.stopPropagation()
    else
        window.event.cancelBubble=true
}
迷茫

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')
    }
});
Ty80

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 :

http://javascript.info/bubbli...
https://stackoverflow.com/que...

阿神

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

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal