Je suis sûr que cela a à voir avec la portée, mais j'ai toujours l'impression de lutter contre la portée de javascript.Compteur Javascript non transmis à la fonction google maps
est ici tout cas le code ...
var beaches = [
['Surf Spot One', xxxxxx, xxxxxx, 2],
['Surf Spot Two', xxxxxx, xxxxxx, 1],
['Surf Spot Three', xxxxxx, xxxxxx, 3 ]
];
var marker = [];
for (var i = 0; i < beaches.length; i++) {
var pos = new google.maps.LatLng(beaches[i][1], beaches[i][2]);
marker[i] = new google.maps.Marker({
setClickable: 1,
position: pos,
map: map,
icon: surferDude,
title:beaches[i][0]
});
google.maps.event.addListener(marker[i], 'mouseover', function() {
// do something here on mouseover
console.log(i);
});
}
La sortie de la console est toujours sur mouseover 3? Pourquoi est-ce? J'ai besoin d'être 1 ou 2 ou 3 selon l'icône sur laquelle je souris.
Merci pour votre inscription. Je me bats vraiment avec la portée en javascript. – 32423hjh32423
@neilc: Les fermetures prennent un peu de temps pour s'y habituer. Une règle générale est que vous aurez probablement besoin d'un truc comme 'create_listener' lorsque vous créez une fermeture ou un callback dans une boucle. C'est marrant de voir comment on ne peut jamais s'éloigner des pointeurs même dans les langues qui prétendent ne pas les avoir :) –