Salut,
J'ai créé une arborescence de menu de ce style :
Etat fermé: + Menu
Qui devient
- Menu
+ Item
Et enfin
Etat ouvert: - Menu
- Item1
blablabla
lorsque je clique sur les + (via un onclick=expand)
J'aurais voulu maintenant ajouter un bouton extérieur qui me permettrait d'arriver directement à l'état ouvert, du genre "Ouvrir tous les +".
Voilà la fonction JS que j'utilise (je précise qu'elle n'est pas de moi) :
Et voici ma page HTM
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 // Fonction qui affiche/cache un menu function expand(li) { var node = li.firstChild; var img = li.firstChild; // parcours tous les fils pour trouver l'element UL while ( node.nodeName != "UL" ) node = node.nextSibling; // parcours tous les fils pour trouver l'element IMG while ( img.nodeName != "IMG" ) img = img.nextSibling; // affiche le menu if ( node.style.display == 'none' ) { node.style.display = 'block'; img.src = 'images/moins.gif'; img.alt = '[-]'; } // cache le menu else { node.style.display = 'none'; img.src = 'images/plus.gif'; img.alt = '[+]'; } }
Est ce que quelqu'un a une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <ul> <li> <img src="images/plus.gif" onclick="expand(this.parentNode)" class="icoh2" width="9" height="9"> <p>Menu</p> <ul class="toc" style="display:none"> <li> <img src="images/plush3.gif" onclick="expand(this.parentNode)" class="icoh3" width="9" height="9"> <p>Item1</p> <ul class="toc" style="display:none"> <li class="marg"> blabla </li> </ul> </li> </ul> </li> </ul>
Je pensais faire un genre de boucle sur cette fonction en parcourant toute la page mais n'y connaissant rien en JavaScript je ne sais pas comment procéder.
Merci !
Partager