Bonjour,
Mon treeview construit, je lui demande lorsque la page se charge de le réduire :
Voici le code js :
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
24
25
26
27
28
29 <div id="mnAction"> <ul id="rac" class="niv"> <li><b>Gestion du site</b> <ul id="niveau" class="niv"> <li><img src="img/minus.gif" class="clic" onClick="expand(this.parentNode)"/><a href="#"><b>Edition</b></a> <ul id="nive" class="niv2"> <li><img src="img/join.gif" /><a href="?ac=ajAuteur">Auteur</a></li> <li><img src="img/join.gif" /><a href="?ac=ajCom">Presse</a></li> <li><img src="img/join.gif" /><a href="?ac=ajLivre">Livre</a></li> <li><img src="img/join.gif" /><a href="?ac=ajlieux">Lieux</a></li> <li><img src="img/join.gif" /><a href="?ac=avis">Avis</a></li> </ul> </li> </ul> <ul id="niveau" class="niv"> <li><img src="img/minus.gif" class="clic" onClick="expand(this.parentNode)"/><a href="#"><b>Globe</b></a> <ul id="nive" class="niv2"> <li><img src="img/join.gif" /><a href="?ac=item">Items</a></li> <li><img src="img/join.gif" /><a href="?ac=ComG">Commande</a></li> </ul> </li> </ul> </li> </ul> <script type="text/javascript" language="JavaScript">collapseMultiple();</script> </div>
Seulement, quoique je fasse, il ne réduit que le premier menu "Edition", l'autre Globe reste étendu et bien évidemment les autres qui suivent.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 // Fonction qui cache tous les menus function collapseMultiple() { // Recupere le menu de niveau 1 //document.getElementById('e').innerHTML="essai"; niv = document.getElementById('niveau'); // recupere tous les menus dépliants tab_ul = niv.getElementsByTagName("ul"); nb = tab_ul.length; // cache tous les menus for(var i=0; i<=nb; i++) { expand(tab_ul[i].parentNode); } } 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 = 'img/minus.gif'; img.alt = '[-]'; } // cache le menu else { node.style.display = 'none'; if (img.name != "t") { img.src = 'img/plus.gif'; img.alt = '[+]'; } else { img.src = ''; img.alt = ''; } } }
Lorsque je compte les niv.getElementsByTag("ul"), il ne m'en trouve qu'un ???
Où se trouve l'erreur dans mon code ?
Christian.
Partager