Fais plutôt une demande dans le forum CSS parce que là je n'ai plus d'idée !
Bon courage,
ERE
Version imprimable
Fais plutôt une demande dans le forum CSS parce que là je n'ai plus d'idée !
Bon courage,
ERE
merci de ton aide en tout cas
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 typeCode:window.onload = function(){ ... }
A+Code:
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:
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:
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);
c'est tout le code ou un partie du code?
C'est tout le code de ton fichier javascript.js
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:
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function 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:
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. :mouarf::king:
merci merci