Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2966 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [résolu] Figer la valeur paramètre quand passé à une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Figer la valeur paramètre quand passé à une fonction

n°2330417
rufo
Pas me confondre avec Lycos!
Posté le 14-03-2019 à 16:19:59  profilanswer
 

Bonjour,
Désolé si mon titre est pas très clair. En gros, dans une page HTML, j'ai une légende avec 6 items et je veux que lorsque je clique sur l'un des items, ça m'affiche un alert(...), le contenu de cet alert étant un nombre allant de 1 à 6.
J'avais fait ça :

Code :
  1. var objMapLegend = document.getElementById('MapLegendList');
  2. var ArrayMapLegendList = objMapLegend.getElementsByTagName('li');
  3. for(var i = 0; i < ArrayMapLegendList.length; i++) {
  4.    ArrayMapLegendList[i].addEventListener("click", function() { LegendFilterClick(i); });
  5. }
  6. function LegendFilterClick(num) {
  7.    aler(num);
  8. }


J'aurais voulu que pour l'item 0, le alert affiche la valeur de la variable i au moment où j'ai instancié la fonction et son paramètre (donc la valeur 0). Pour l'item 1, que ça affiche 1, ...
Là, ça m'affiche toujours 6 ce qui est logique vu ce que j'ai écrit. Mais j'arrive pas à trouver la syntaxe pour que le paramètre num de ma fonction conserve la valeur de i au moment de la création du listener :/
J'ai la méthode bourrin où je mets :

Code :
  1. ArrayMapLegendList[0].addEventListener("click", function() { LegendFilterClick(1); });
  2. ArrayMapLegendList[1].addEventListener("click", function() { LegendFilterClick(2); });
  3. ArrayMapLegendList[2].addEventListener("click", function() { LegendFilterClick(3); });
  4. ArrayMapLegendList[3].addEventListener("click", function() { LegendFilterClick(4); });
  5. ArrayMapLegendList[4].addEventListener("click", function() { LegendFilterClick(5); });
  6. ArrayMapLegendList[5].addEventListener("click", function() { LegendFilterClick(6); });


Mais c'est pas propre :/
 
Une idée, svp ? Merci.


Message édité par rufo le 14-03-2019 à 18:04:30

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 14-03-2019 à 16:19:59  profilanswer
 

n°2330420
MaybeEijOr​Not
but someone at least
Posté le 14-03-2019 à 17:20:37  profilanswer
 

Utilise la déclaration "let" de ta variable i et cela résoudra le problème.
Sinon, si tu passes l'évènement en paramètre tu dois pouvoir retrouver l'index de ton élément je pense.


Message édité par MaybeEijOrNot le 14-03-2019 à 17:21:18

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2330428
rufo
Pas me confondre avec Lycos!
Posté le 14-03-2019 à 18:03:44  profilanswer
 

Ca marche avec let, merci :)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [résolu] Figer la valeur paramètre quand passé à une fonction

 

Sujets relatifs
Passage de paramètre du PHP au Javascript[AIDE] Highcharts - graphique en fonction d'une var ID et Time
appel de fonction par boutonFonction onmouseover
Récupérer une valeur suivant celluleCommande exec() qui ne passe pas
Exécuter une fonction en PHP avec un bouton HTMLFonction didSet dans Xcode 10 a disparu
Détecter un changement de valeur dans un input 
Plus de sujets relatifs à : [résolu] Figer la valeur paramètre quand passé à une fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR