Bonjour � tous,
Je savais d�j� que l'on en pouvais pas assigner de fonction avec param�tre sur les onclick d'�l�ments HTML de cette fa�on :
Ce qui execute la fonction.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 monElement.onclick = maFonction(param);
J'ai donc cherch� et vu que l'on pouvais faire comme �a :
Ce qui marche pour un param�tre fixe, mais qui se g�te lorsque l'on veut faire changer le param�tre en fonction de l'�lement sur lequel on applique le onclick.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 monElement.onclick = function() { maFonction(param); }
Voici ma situation :
Je poss�de un tableau d'�lement HTML.
Je poss�de �galement une fonction qui prend en param�tre l'indice de l'�lement dans ce tableau.
Je voudrais, pour assigner � tous mes �lements de mon tableau une fonction onclick faire quelque chose dans le genre :
Ce code fonctionne, pas de bug � l'execution, mais pas comme je le veux.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 for(i in monTableauDElement) { monTableauDElement[i].onclick = function() { maFonction(i); }; }
En effet, la valeur de i changeant tout au long de la boucle, tous mes �lements finissent par appeler ma fonction avec comme param�tre le i le plus grand.
En pratique au lieu d'avoir �a (r�sultat attendu) :
J'ai :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 monTableauDElement[0] = function() { maFonction(0); }; monTableauDElement[1] = function() { maFonction(1); }; monTableauDElement[2] = function() { maFonction(2); }; monTableauDElement[3] = function() { maFonction(3); };
J'ai essay� plein de bidouilles avec des eval, mais impossible de garder fixe mon i pour chacun de mes �lements.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 monTableauDElement[0] = function() { maFonction(3); }; monTableauDElement[1] = function() { maFonction(3); }; monTableauDElement[2] = function() { maFonction(3); }; monTableauDElement[3] = function() { maFonction(3); };
Voila tout mon probl�me, j'esp�re avoir �t� le plus clair possible. Si vous ne comprenez pas un point faites le moi savoir.
Si quelqun � une r�ponse ou un d�but de piste je suis preneur !!
Merci d'avance.
Partager