Bonsoir,
J'essaie difficilement de me mettre à du JavaScript propre pour adapter des scripts à l'ancienne (avec du onMouse... un peu partout). Et je n'y comprends pas grand chose.
Voilà mon problème : dans une page, j'ai deux listes ; l'une contient des images et l'autre des descriptions qui y sont associées. Ça donne quelque chose du genre
Le nombre d'éléments étant variable selon les pages (mais toujours avec le couple liste1-liste2).
À l'origine (chargement de la page), les descriptions sont cachées. Au survol de chaque image (liste 1), la description correspondante (liste 2) doit apparaître.
Avec mes vieilles méthodes JS, j'avais une fonction permettant d'afficher un élément selon sa balise et j'intégrais le code au fil de la page. Ainsi, les éléments de la liste 1 devenaient du style
Ce qui, vous en conviendrez, n'est pas terrible quand on veut faire du code propre et du JS non-obstrusif. Même si ça marche.
J'ai donc commencé à étudier le bouquin de C. Porteneuve "Bien développer pour le web 2.0" pour voir la gestion d'évènements et l'utilisation de la bibliothèque Prototype (plus pratique pour gérer les évènements indépendamment du navigateur).
Et là, je suis complètement perdu.
Je pense que ce qu'il faudrait c'est :
- pour chaque élément de la liste 1 (récupération d'un tableau en fonction de la classe "miniature" ? ou gestion manuelle d'autant d'observateurs que j'ai d'éléments dans ma liste), mettre un observateur d'évènement lançant une fonction d'affichage
- la fonction d'affichage devant récupérer l'Id de l'élément déclencheur (comment ?), en déduire l'Id de l'élément cible (remplacer "mini" par "desc") et changer la propriété CSS "display" de celui-ci
Autant je vois à peu près comment remplacer l'élément déclencheur par autre chose, autant je ne vois pas comment récupérer son Id pour pouvoir cibler un autre élément.
Est-ce que quelqu'un aurait un exemple de code pour ma situation ?
Modifié par terzag (24 Jun 2007 - 13:25)
J'essaie difficilement de me mettre à du JavaScript propre pour adapter des scripts à l'ancienne (avec du onMouse... un peu partout). Et je n'y comprends pas grand chose.

Voilà mon problème : dans une page, j'ai deux listes ; l'une contient des images et l'autre des descriptions qui y sont associées. Ça donne quelque chose du genre
<ul>
<li id="mini1" class="miniature"><img src="image1.jpg"/></li>
<li id="mini2" class="miniature"><img src="image2.jpg"/></li>
...
</ul>
<ul>
<li id="desc1" class="description"><p>Description de l'image 1</p></li>
<li id="desc2" class="description"><p>Description de l'image 2</p></li>
...
</ul>
Le nombre d'éléments étant variable selon les pages (mais toujours avec le couple liste1-liste2).
À l'origine (chargement de la page), les descriptions sont cachées. Au survol de chaque image (liste 1), la description correspondante (liste 2) doit apparaître.
Avec mes vieilles méthodes JS, j'avais une fonction permettant d'afficher un élément selon sa balise et j'intégrais le code au fil de la page. Ainsi, les éléments de la liste 1 devenaient du style
<li id="mini1" class="miniature" onMouseOver="afficheTexte('desc1');"><img src="image1.jpg"/></li>
Ce qui, vous en conviendrez, n'est pas terrible quand on veut faire du code propre et du JS non-obstrusif. Même si ça marche.
J'ai donc commencé à étudier le bouquin de C. Porteneuve "Bien développer pour le web 2.0" pour voir la gestion d'évènements et l'utilisation de la bibliothèque Prototype (plus pratique pour gérer les évènements indépendamment du navigateur).
Et là, je suis complètement perdu.
Je pense que ce qu'il faudrait c'est :
- pour chaque élément de la liste 1 (récupération d'un tableau en fonction de la classe "miniature" ? ou gestion manuelle d'autant d'observateurs que j'ai d'éléments dans ma liste), mettre un observateur d'évènement lançant une fonction d'affichage
- la fonction d'affichage devant récupérer l'Id de l'élément déclencheur (comment ?), en déduire l'Id de l'élément cible (remplacer "mini" par "desc") et changer la propriété CSS "display" de celui-ci
Autant je vois à peu près comment remplacer l'élément déclencheur par autre chose, autant je ne vois pas comment récupérer son Id pour pouvoir cibler un autre élément.
Est-ce que quelqu'un aurait un exemple de code pour ma situation ?
Modifié par terzag (24 Jun 2007 - 13:25)