Re: besoin d'aide pour un problème javascript...
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é
|