Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

encapsulés contenant chacun le même évenement rattaché: comment EVITER que l'evènement parent soit la ncé lorsque l'évenement fils est déclenché?

5 réponses
Avatar
Num GG
Bonjour =E0 tous:

Soit le (pauvre) bout de code suivant:

<div id=3D"monDiv" ondblclick=3D"alert(id)"> //parent div
Div4 bla bla bla bla on div 4
<div id=3D"monDivEncapsule"ondblclick=3D"alert(id)"> // child div
Div4.1 bla bla bla on embedded Div
</div>
</div>

Quand je double-clique sur le div encapsul=E9 (id=3DmonDivEncapsule)
l'=E9venement associ=E9 est lanc=E9. Ici, il s'affiche une simple fen=EAtre
javascript Alert "monDivEncapsule". OK

En revanche, comme j'ai double-cliqu=E9 dans le div encapsul=E9, le div
parent "croit" lui aussi qu'il a =E9t=E9 double-cliqu=E9. Donc l'=E9venemen=
t
associ=E9 est lanc=E9 lui aussi: Alert "monDiv".

C'est OK aussi mais justement je ne voudrais pas. :(

D'o=F9 la question: Dans le cas de div encapsul=E9s contenant chacun le
m=EAme =E9venement rattach=E9, il y a-t-il un moyen _simple_ de faire en
sorte que l'ev=E8nement parent ne soit pas lanc=E9 lorsque l'=E9venement
fils est d=E9clench=E9?

Merci =E0 tous pour toute suggestion

Num

5 réponses

Avatar
Olivier Miakinen
Bonjour,

J'ai un peu réduit le sujet. Certes un titre doit être explicite, mais
il faut rester dans les limites du raisonnable !

Le 10/11/2008 14:40, Num GG a écrit :

[...]

D'où la question: Dans le cas de div encapsulés contenant chacun le
même évenement rattaché, il y a-t-il un moyen _simple_ de faire en
sorte que l'evènement parent ne soit pas lancé lorsque l'évenement
fils est déclenché?



Je parierais que c'est la même chose que pour empêcher un lien de
s'activer quand il a été traité par Javascript :
ondblclick="alert(id); return false;"
Avatar
SAM
Le 11/10/08 3:02 PM, Olivier Miakinen a écrit :
Bonjour,

J'ai un peu réduit le sujet. Certes un titre doit être explicite, mais
il faut rester dans les limites du raisonnable !

Le 10/11/2008 14:40, Num GG a écrit :
[...]

D'où la question: Dans le cas de div encapsulés contenant chacun le
même évenement rattaché, il y a-t-il un moyen _simple_ de faire en
sorte que l'evènement parent ne soit pas lancé lorsque l'évenement
fils est déclenché?



Je parierais que c'est la même chose que pour empêcher un lien de
s'activer quand il a été traité par Javascript :
ondblclick="alert(id); return false;"




je ne pense pas ... c'est plutôt une histoire de bouillonnement

Breffle,
il faut limiter la propagation des contenus vers leurs conteneurs


<div id="monDiv" ondblclick="alert(this.id)"> //parent div
Div4 bla bla bla bla on div 4
<div id="monDivEncapsule"
ondblclick="alert(this.id);
event.cancelBubble = true; // pas testé IE, à faire
if(event.stopPropagation)
event.stopPropagation();"> // child div
Div4.1 bla bla bla on embedded Div
</div>
</div>

--
sm
Avatar
Num GG
On 10 nov, 15:39, SAM
wrote:
Le 11/10/08 3:02 PM, Olivier Miakinen a écrit :





> Bonjour,

> J'ai un peu réduit le sujet. Certes un titre doit être explicite, m ais
> il faut rester dans les limites du raisonnable !

> Le 10/11/2008 14:40, Num GG a écrit :
>> [...]

>> D'où la question: Dans le cas de div encapsulés contenant chacun l e
>> même évenement rattaché, il y a-t-il un moyen _simple_ de faire en
>> sorte que l'evènement parent ne soit pas lancé lorsque l'éveneme nt
>> fils est déclenché?

> Je parierais que c'est la même chose que pour empêcher un lien de
> s'activer quand il a été traité par Javascript :
>   ondblclick="alert(id); return false;"

je ne pense pas ... c'est plutôt une histoire de bouillonnement

Breffle,
il faut limiter la propagation des contenus vers leurs conteneurs

<div id="monDiv" ondblclick="alert(this.id)">   //parent div
Div4 bla bla bla bla on div 4
   <div id="monDivEncapsule"
        ondblclick="alert(this.id);
                    event.cancelBubble = true;   // pas testé IE, à faire
                    if(event.stopPropagation)
                    event.stopPropagation();">   // child div
   Div4.1 bla bla bla on embedded Div
   </div>
</div>

--
sm- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Impec... Nickel...

Merci

Num
Avatar
Olivier Miakinen
Le 10/11/2008 15:39, SAM m'a répondu :

Je parierais que c'est la même chose que pour empêcher un lien de
s'activer quand il a été traité par Javascript :
ondblclick="alert(id); return false;"



je ne pense pas ... c'est plutôt une histoire de bouillonnement

[ cancelBubble, stopPropagation et tutti quanti ]




Eh oui, tu as raison comme toujours, que c'en est presque énervant. ;-)
Avatar
Num GG
>
> je ne pense pas ... c'est plutôt une histoire de bouillonnement

> [ cancelBubble, stopPropagation et tutti quanti ]

Eh oui, tu as raison comme toujours, que c'en est presque énervant. ;-)


Oui, merci à tous.

Pour ceux qui veulent en savoir plus, c'est bien expliqué (mais en
anglais désolé) sur:

http://www.quirksmode.org/js/events_order.html (il faut scroller
jusqu'à "turning it off").

Num,