Bonjour,
Je suis bloquée depuis hier sur une erreur que je n'arrive aps à résoudre marlgré toutes les astuces que j'ai pu essayer.
Voici le code:
Mon problème se situe au niveau de la ligne en rouge sur l'action 'onmouseover'.. la fonction 'affiche_tip' est censée afficher la valeur x du tableau 'param'. Le tableau param est bien reconnu, la variable x également mais le fait d'être déclarés dans une nouvelle fonction, je me suis apercue que la valeur de 'x' au final vaut toujours la dernière occurrence de ma boucle 'for': je m'explique, dans ce cas particulier, mon j vaut 15, et à tous les tours de boucle, les éléments 'calendar[x]' prennent bien les valeurs 'calendar[0]', 'calendar[1]', etc... Mais dans la fonction de l'action onmouseover, à tous les tours de boucles, j'ai toujours 'param[15]' avec x=15. A croire que la boucle fait bien tous ses tours de boucle et une fois fini, elle s'occupe de l'intérieur de la function()....
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 //Déclaré au début du fichier: var calendar = new Array(); var param = new Array(); var details = new Array(); var couleur = new Array(); var description = new Array(); var j = 0; var i = 0; var x = 0; // Puis autre part dans le fichier for( x=0; x<j+1; x++){ document.getElementById(calendar[x]).innerHTML = x; document.getElementById(calendar[x]).style.backgroundColor = couleur[x]; document.getElementById(calendar[x]).style.borderRight; document.getElementById(calendar[x]).onmouseover = function () { this.style.cursor = 'pointer'; affiche_tip(param[x],"TEST TEST !!!",200); }; }
Si qq1 à une idée ou une astuce ou une explication rationnelle car je perds du temps depuis hier sur cette idiotie loll..
PS: mes petits essais:
- déclarer une fonction externe ff(x) et passer en paramètre le x et mettre dans la boucle document.getElementById(calendar[x]).onmouseover = ff(x);
mais ca applique l'evenement 'onmouseover' sur tous les éléments de la page
- laisser déclaré tel quel mais passer en paramètre dans function(x) la variable x, ca ne change rien..
Merci pour 'laide..
Partager