Fais plutôt une demande dans le forum CSS parce que là je n'ai plus d'idée !
Bon courage,
ERE
Fais plutôt une demande dans le forum CSS parce que là je n'ai plus d'idée !
Bon courage,
ERE
Bonjour,
Quand je regarde le source de la page essaie.php, il n'y a pas de lien vers un .js externe ou de <SCRIPT>...</SCRIPT> particulier, du coup, il n'y a pas d'initialisation de ton menu...
J'imagine que tu as oublié d'intégrer le javascript d'initialisation du menu parmi tes tests ?
Sinon, par rapport à l'initialisation du script, je changerai
par une fonction du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part window.onload = function(){ ... }
A+
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 function addEvent(obj,event,fct) { if (obj.attachEvent) obj.attachEvent('on' + event,fct); else obj.addEventListener(event,fct,true); } function removeEvent(obj,event,fct) { if (obj.detachEvent) obj.detachEvent('on'+event,fct); else obj.removeEventListener(event,fct,true); } addEvent(document,load,initMenu); function initMenu() { ... }
J'ai suivi ton conseil mais ca ne marche toujours pas. J'ai rajouté la ligne et modifié le code
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
51
52 function gebcn(c) { if (document.getElementsByClassName) { return document.getElementsByClassName(class); } else { var all = document.getElementsByTagName("*"), res = []; for (var i=0,l=all.length;i<l;i++) { if (all[i].className == class) { res.push(all[i]); } } return res; } } sfHover = function() { var sfEls = gebcn("deroulant"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover = function() { this.getElementsByTagName("ul")[0].style.display = "block"; }; sfEls[i].onmouseout = function() { this.getElementsByTagName("ul")[0].style.display = "none"; }; } }; function addEvent(obj,event,fct) { if (obj.attachEvent) obj.attachEvent('on' + event,fct); else obj.addEventListener(event,fct,true); } function removeEvent(obj,event,fct) { if (obj.detachEvent) obj.detachEvent('on'+event,fct); else obj.removeEventListener(event,fct,true); } addEvent(document,load,initMenu); function initMenu() { ... }
Hmmm, tu as bien rempli le corps de la fonction initMenu ? Parce que c'était un exemple ce que j'ai mis comme code, à toi de remplir la fonction avec ton traitement d'initialisation du menu...
Sinon, mets un alert(); dans ta fonction d'initialisation du menu pour voir si la fonction est bien exécutée au chargement du document.
desole je debute et ce code est un peu beaucoup compliqué a mes yeux lol.
Ok, essaye ça :
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 function gebcn(c) { if (document.getElementsByClassName) { return document.getElementsByClassName(c); } else { var all = document.getElementsByTagName("*"), res = []; for (var i=0,l=all.length;i<l;i++) { if (all[i].className == c) { res.push(all[i]); } } return res; } } function sfHover() { var sfEls = gebcn("deroulant"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover = function() { this.getElementsByTagName("ul")[0].style.display = "block"; }; sfEls[i].onmouseout = function() { this.getElementsByTagName("ul")[0].style.display = "none"; }; } }; function addEvent(obj,event,fct) { if (obj.attachEvent) obj.attachEvent('on' + event,fct); else obj.addEventListener(event,fct,true); } function removeEvent(obj,event,fct) { if (obj.detachEvent) obj.detachEvent('on'+event,fct); else obj.removeEventListener(event,fct,true); } addEvent(document,"load",sfHover);
alors ca ne marche toujours pas
http://www.sandrineetgwen.fr/essaie.php
La dernière ligne est à modifier :
addEvent(document,"load",sfHover);
en
addEvent(window,"load",sfHover);
Le code complet :
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 function gebcn(c) { if (document.getElementsByClassName) { return document.getElementsByClassName(c); } else { var all = document.getElementsByTagName("*"), res = []; for (var i=0,l=all.length;i<l;i++) { if (all[i].className == c) { res.push(all[i]); } } return res; } } function sfHover() { var sfEls = gebcn("deroulant"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover = function() { this.getElementsByTagName("ul")[0].style.display = "block"; }; sfEls[i].onmouseout = function() { this.getElementsByTagName("ul")[0].style.display = "none"; }; } } function addEvent(obj,event,fct) { if (obj.attachEvent) obj.attachEvent('on' + event,fct); else obj.addEventListener(event,fct,true); } function removeEvent(obj,event,fct) { if (obj.detachEvent) obj.detachEvent('on'+event,fct); else obj.removeEventListener(event,fct,true); } addEvent(window,"load",sfHover);
alors du coup ca marche mais par contre j'ai une erreur
this Get Element..... est null ou n'est pas un objet
Cette erreur survient au survol de l'item Contact, qui ne contient pas d'enfants "UL", et donc la fonction de onmouseover lève une erreur...
Il faut modifier la fonction sfHover :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14function sfHover() { var sfEls = gebcn("deroulant"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover = function() { if (this.getElementsByTagName("ul").length>0) this.getElementsByTagName("ul")[0].style.display = "block"; }; sfEls[i].onmouseout = function() { if (this.getElementsByTagName("ul").length>0) this.getElementsByTagName("ul")[0].style.display = "none"; }; } }
en fait ca marche mais avec un autre script en fait
et j'ai en posant une question dans la partie css ils m'ont trouvé une erreur et ca y est tout marche niquel sans erreur de script.
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 window.onload = function() { var menu = document.getElementById("menuHorizon"); var sfEls = menu.getElementsByTagName("li"); for (var i=0; i<sfEls.length; i++) { if (sfEls[i].className == "deroulant") { sfEls[i].onmouseover = function() { var uls = this.getElementsByTagName("ul"); if (uls.length > 0) { uls[0].style.display = "block"; } var imgs = this.getElementsByTagName("img"); if (imgs.length > 0) { var img = imgs[0]; var tmp = img.src; img.src = img.alt; img.alt = tmp; } }; sfEls[i].onmouseout = function() { var uls = this.getElementsByTagName("ul"); if (uls.length > 0) { uls[0].style.display = "none"; } var imgs = this.getElementsByTagName("img"); if (imgs.length > 0) { var img = imgs[0]; var tmp = img.src; img.src = img.alt; img.alt = tmp; } }; } } };
En tout cas merci de votre aide. heureusement que vous étiez la quand même.
merci merci
Partager