Plusieurs evenements on(click|mouseUp|mouseDown) sur des éléments parent et fils

codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 17 févr. 2008 à 20:59
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 18 févr. 2008 à 12:23
Bonsoir à tous :)

Je suis confronté à un petit soucis.
J'ai un élément parent, une div, id="container".
Je lui ai attribué des évenements onMouseUp, onMouseDown et onMouseMove.
Ca marche nikel, rien à redire :p

Dans mon code, ensuite, j'ai générée une div (document.createElement ('div');) que j'ai placé dans la div "container".
A cet element fils, je lui ai aussi attribué des évenements onMouseUp, onMouseDown et onMouseMove.
Le probleme, c'est que les évenements de l'élément fils ne fonctionnent pas.
Par contre si je désactive les évenements sur l'élement parent, les evenements de l'élément fils fonctionneront.

Comment faire pour les faire cohabiter ?

Merci de votre aide :)

http://www.ReFlectiv.Net

6 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 févr. 2008 à 11:27
Bonjour,

    D1
   
window.event.cancelBubble=true;
                            document.getElementById('aff').value='d2';"
            style="width:50%;height:50%;background-color:#DDFFFF">
        D2
   

    si j'ai compris le souci....
    il te reste la compatibilité avec FF ( et autres ) à faire
       avec evt.stopPropagation() 
       quelques explications ici

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
18 févr. 2008 à 11:40
Toujours toi ! :p

J'ai réfléchis à mon probleme, mais ma question était stupide, je voulais que le navigateur devine sur quel élément je clique, c'est pas sensé ! :p

Voila comme j'ai fait.
J'ai une classe qui crée des divs à la volée.
J'ai fait une classe factory qui instancie la classe qui crée les divs, et elle enregistre les instances d'objets dans un tableau associatif, ou les clées sont les id des divs.

J'ai une classe MouseEvent, qui utilise les document.onMouse(Move|Up|Down) et à chaque evenement, je fait un

instanceDeLaFactory.mouseAction (idElementCliked) et dans ma factory, elle va appeler la fonction mouseAction de la classe qui genere les divs, mais avec la bonne instance (monTable[idElementClicked].mouseAction) et cette méthode, dans la classe qui génere la div, va me retourner si oui ou non je peux faire quelque chose dessus (je veux modifier la taille si je suis au bord).
si ca retourne false je part sur une action de l'élément parent et hop ! :)

Tu pense quoi de cette implémentation, en aurait-tu une meilleur ?

http://www.ReFlectiv.Net
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 févr. 2008 à 12:02
>>J'ai réfléchis à mon probleme, mais ma question était stupide,
    ben non.... puisque je parlais d'une piste possible   ;o)
    ou alors je n'avais pas compris ?

>>je
voulais que le navigateur devine sur quel élément je clique, c'est pas
sensé !
    euh.... ça aussi on peut !
    dernier élément qui à eu le focus  

                        function qui(evt)
            { var target;
              if ("activeElement" in document)
                    {  target = document.activeElement;    }
              else  {  target = evt ? evt.explicitOriginalTarget : null;  }
              return target;
            }
>> en aurais-tu une meilleur ?
    j'en doute...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
18 févr. 2008 à 12:04
quand tu dit "j'en doute" pour une meilleure idée, tu parle de ton idée ou de la mienne ?

http://www.ReFlectiv.Net
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 févr. 2008 à 12:21
je doute que je puisse proposer quelque chose d'autre,
    et même, je doute que ce serait meilleur si je le faisais.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
18 févr. 2008 à 12:23
Pourquoi tu doute que ce serait meilleur ? tu doute de toi ? Vu tes compétences tu devrait pas ! :p
Perso je trouve ca lourd mais c'est la seule solution possible que j'ai trouvé :/

http://www.ReFlectiv.Net
0
Rejoignez-nous