Forums : Extensions

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] récuperation de valeur avec un click

Envoyé par : The_Did

Date : 19/06/2007 13:26

Bonjour, j'ai un probleme avec ce script:

var i=0;
while(tableau[i]){

var valeur=tableau[i].fileName;
resultat+="<div id='nom_"+i+"'>"+valeur+"</div><br>";

i++;
}
element.innerHTML=resultat;
i=0;
while(tableau[i]){
el=window.getBrowser().contentDocument.getElementById("nom_"+i);
el.addEventListener('click',function () {
				alert(i);
                                        },true);
i++;
}

Le probleme est que mon alert donnne toujours la dernière valeur quand je clique sur un div. Disons que si j'ai 20 éléments dans mon tablaus je vais avoir des alert("20") alors que je voudrait avoir le numero du div sur lequel j'ai cliqué.

J'ai le meme probleme avec les Id et les value

Quelqu'un a une autre technique?

# Re: récuperation de valeur avec un click

Envoyé par : pedouille

Date : 22/06/2007 21:46

C'est un problème de contexte d'execution.

Dans la définition de tes fonctions anonyme faisant "alert(i)", le "i" désigne en fait une référence vers l'espace mémoire occupé par i. Lorsque tu construis tes fonctions anonymes et que tu les attaches avec "addEventListener", l'interpréteur comprend "affiche la valeur contenu à l'adresse de i à chaque clique sur le div".

Une fois ta boucle fini, i=20.

Lorsque tu cliques, il exécute ce que tu as demandé, c'est à dire qu'il affiche la valeur à l'adresse de i : il affiche donc 20.

Pour la solution, je ne vois rien de simple ...

# Re: récuperation de valeur avec un click

Envoyé par : Paul Rouget

Date : 25/06/2007 03:26

Teste ça pour voir:

while(tableau[i]){
  var tmp = i;
  el=window.getBrowser().contentDocument.getElementById("nom_"+i);
  el.addEventListener('click',function () {alert(tmp);},true);
  i++;
}

# Re: récuperation de valeur avec un click

Envoyé par : The_Did

Date : 25/06/2007 15:53

merci pour ta réponse en fait j'ai créer une <div id=i> grâce à la fonction innerHTML et ensuite j'ai fait un addEventListener sur chaque id et sa marche très bien

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.