Salut à tous ...
Je vous expose mon soucis (un peu compliqué)
Je suis en train de dévellopper un genre de menu déroulant en javascript/objet. Ce n'est pas un menu déroulant, mais c'est approchant !
En gros, j'ai un objet parent(ul) qui contient plusieurs objets enfants(li).
L'objet parent est accessible via une variable globale définie dans le javascript. Il définit des méthodes pour ajouter et supprimer des enfants. Une référence à ces enfant est stockée dans un tableau à l'intérieur du parent.
Chaque enfant possède lui aussi des méthodes pour créer des petits-enfants ... (ce n'est pas le problème).
Mon soucis est liée aux évènement.
En effet, à chaque objet sont liés des évènement (mouseover et mouseout).
Le problème est lors de la création d'un enfant, je doit lui ajouter ces évènements. Hors il faut que je puisse dans cette déclaration rajouter l'information de QUEL enfant est concerné.
Première réflexion : utiliser this ... très drole ! ca ne marche pas des masse.
Pour Firefox (et compatibles) j'ai trouvé :
la fonction AddEvent est juste l'appel à addEventListener ou AttachEvent en fonction du navigateur
b est l'objet html de l'enfant
En gros le principe est de générer la syntaxe de la fonction en incluant le this.ID qui permet de retrouver l'enfant concerné depuis le parent.
Malheureusement, cette déclaration ne plait pas du tout à IE !
pourtant
ceci fonctionne très bien sur les 2 navigateur ...
Je souhaite juste remplacer le ENF1 dynamiquement par le this.ID de l'objet concerné.
A noter que le this.ID pointe sur l'objet lors de la déclaration de la fonction. Pas du tout lors du déclenchement de l'évènement.
Si quelqu'un à une proposition à soumettre, je suis preneur ! ca fait plusieurs jours que ca me prend là tête !
SNIF
Modifié par MangaII (29 Mar 2007 - 08:40)
Je vous expose mon soucis (un peu compliqué)
Je suis en train de dévellopper un genre de menu déroulant en javascript/objet. Ce n'est pas un menu déroulant, mais c'est approchant !
En gros, j'ai un objet parent(ul) qui contient plusieurs objets enfants(li).
L'objet parent est accessible via une variable globale définie dans le javascript. Il définit des méthodes pour ajouter et supprimer des enfants. Une référence à ces enfant est stockée dans un tableau à l'intérieur du parent.
Chaque enfant possède lui aussi des méthodes pour créer des petits-enfants ... (ce n'est pas le problème).
Mon soucis est liée aux évènement.
En effet, à chaque objet sont liés des évènement (mouseover et mouseout).
Le problème est lors de la création d'un enfant, je doit lui ajouter ces évènements. Hors il faut que je puisse dans cette déclaration rajouter l'information de QUEL enfant est concerné.
Première réflexion : utiliser this ... très drole ! ca ne marche pas des masse.
Pour Firefox (et compatibles) j'ai trouvé :
AddEvent( b, "mouseover", eval("function(){ PARENT.Enfant[ \""+this.ID+"\" ].Show();}") );
la fonction AddEvent est juste l'appel à addEventListener ou AttachEvent en fonction du navigateur
b est l'objet html de l'enfant
En gros le principe est de générer la syntaxe de la fonction en incluant le this.ID qui permet de retrouver l'enfant concerné depuis le parent.
Malheureusement, cette déclaration ne plait pas du tout à IE !
pourtant
AddEvent( b, "mouseover", function(){ PARENT.Enfant[ 'ENF1' ].Show();} );
ceci fonctionne très bien sur les 2 navigateur ...
Je souhaite juste remplacer le ENF1 dynamiquement par le this.ID de l'objet concerné.
A noter que le this.ID pointe sur l'objet lors de la déclaration de la fonction. Pas du tout lors du déclenchement de l'évènement.
Si quelqu'un à une proposition à soumettre, je suis preneur ! ca fait plusieurs jours que ca me prend là tête !
SNIF

Modifié par MangaII (29 Mar 2007 - 08:40)