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
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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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;"
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;"
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 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
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>
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
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
On 10 nov, 15:39, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
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>
> 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
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. ;-)
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. ;-)
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
> > 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,
>
> 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").