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