prise en compte d'une variable.
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:
Code:
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); };
} |
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()....
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 8O
- laisser déclaré tel quel mais passer en paramètre dans function(x) la variable x, ca ne change rien..
Merci pour 'laide..