|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
j'ai un petit problème que je dois régler rapidement... j'ai un exemple simple de ce que je veux faire. J'ai des champs qui sont générés dynamiquement. Lors de l'exécutionde la fonction, les champs existent. Est-ce qu'il y a une manière que la fonction onclick que je créé affiche la string "champ1"... Voici un exemple de code qui reproduit un peu ce que ca doit faire : function addOnClick(){ for(i=1;i<=5;i++){ var champ = 'champ'+ i; document.getElementById(champ).onclick = function(){alert(champ);}; } } //la valeur i = 5 après la boucle... Lorsque le click ensuite dans le champ ayant l'id "champ1" par exemple, ca m'affiche "champ5", parce que la valeur de la variable i est rendu à 5. J'ai essayé de faire : var champ = String('champ'+i); Mais ca ne fonctionne pas plus... est-ce qu'il y a une manière de le faire ?? Ma fonction est plus complexe que cet exemple, mais ca reproduit mon problème. je ne peux pas par exemple faire function() {alert('champ'+i);}... Est-ce que quelqu'un peut me dire ce qui cloche ??? Merci! |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
FLaplante a écrit :
> > J'ai des champs qui sont générés dynamiquement. Lors de l'exécution de > la fonction, les champs existent. Est-ce qu'il y a une manière que la > fonction onclick que je créé affiche la string "champ1"... Voici un > exemple de code qui reproduit un peu ce que ca doit faire : > > function addOnClick(){ > for(i=1;i<=5;i++){ > var champ = 'champ'+ i; > document.getElementById(champ).onclick = function(){alert(champ);}; > } > } > //la valeur i = 5 après la boucle... function addOnClick(){ for(var i=1; i<=5; i++) { document.getElementById('champ'+i).onclick = function(){ alert(this.id); }; } } > Est-ce que quelqu'un peut me dire ce qui cloche ??? Tu as bien trouvé ce qui clochait : tu attibues la même variable à plusieurs fonctions et c'est le dernier état de cette variable qui sera pris en compte partout. function $(id) { return document.getElementById(id); } function addOnClick(){ // variante 1 for(var i=1; i<=5; i++) $('champ'+i).onclick = Function('alert("champ '+i+'")'); } function addOnClick(){ // variante 2 for(var i=1; i<=5; i++) $('champ'+i).onclick = Function('alarm("champ '+i+'");'); } function alarm(txt) { alert('C\'est bien le :\n'+txt); } -- Stephane Moriaux et son (moins) vieux Mac déjà dépassé |
|
![]() |
| Outils de la discussion | |
|
|