J'ai la fonction suivantejavascript comment "réparer" une variable dans une fonction, via eval?
var label = function() {
return 'File: '+texts[t];
};
qui est attaché à Highcharts, indiqué ici http://api.highcharts.com/highcharts#plotOptions.pie.dataLabels.formatter
où t
a des valeurs disons de 1 à 10 et text[t]
correspond à un texte différent. J'attache cette fonction à 10 highchart tooltips
afin qu'il exécute la fonction avec un événement mouseOver
.
La logique est que prévu tableau 1 présente l'étiquette text[1]
apparaissant, le graphique 6 a text[6]
, etc.
Le problème est que toutes les cartes ont le text[10]
apparaissant, puisque t
a cette valeur lorsque la fonction est exécutée.
Comment puis-je résoudre ce problème? Est-ce un endroit pour eval()
comme
var label = function() {
return 'File: '+eval(texts[t]);
};
MISE À JOUR: en fonction des commentaires, en essayant
var label = function(t) {
return 'File: '+t+' '+texts[t];
};
ne fonctionne pas comme prévu, il imprime "Fichier: [object Object] undefined"
vous n'avez pas besoin 'eval' pour cela, il suffit d'ajouter _t_ comme argument à la fonction et passer _t_ à lui de la boucle. ex: 'function (t)' et 'label (t)' – dandavis
Le problème que vous décrivez est très courant lorsque la variable est accessible via une fermeture. Vous devez montrer la partie où 't' est initialisé et manipulé. – haim770