PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > besoin d'aide pour un problème javascript...
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
besoin d'aide pour un problème javascript...

Réponse
 
LinkBack Outils de la discussion
Vieux 12/05/2007, 18h40   #1
FLaplante
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut besoin d'aide pour un problème javascript...

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!

  Réponse avec citation
Vieux 12/05/2007, 22h35   #2
ASM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut 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é
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 19h53.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,09988 seconds with 10 queries