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 fentre
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 encapsuls contenant chacun le
mme venement rattach, il y a-t-il un moyen _simple_ de faire en
sorte que l'evnement parent ne soit pas lanc lorsque l'venement
fils est dclench?

Merci tous pour toute suggestion

Num
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