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é?

Le
Num GG
Bonjour à tous:

Soit le (pauvre) bout de code suivant:

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

Quand je double-clique sur le div encapsulé (id=monDivEncapsule)
l'évenement associé est lancé. Ici, il s'affiche une simple fenêtre
javascript Alert "monDivEncapsule". OK

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

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

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é?

Merci à tous pour toute suggestion

Num
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #17800321
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;"
SAM
Le #17800611
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


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
Num GG
Le #17801111
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

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
Olivier Miakinen
Le #17804711
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. ;-)
Num GG
Le #17880501
>
> 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,
Publicité
Poster une réponse
Anonyme