My Code
// Do Ajax Demande et obtenez une réponse JSON P>
for (var i = 0; i < data.results.length; i++) { result = data.results[i]; // do stuff and create google maps marker marker = new google.maps.Marker({ position: new google.maps.LatLng(result.lat, result.lng), map: map, id: result.id }); google.maps.event.addListener(marker, 'click', function() { createWindow(marker.id); //<==== this doesn't work because marker always points to the last results when this function is called }); }
4 Réponses :
Le Fermeture classique Problème frappe à nouveau!
google.maps.event.addListener(marker, 'click', function(id) { return function(){ createWindow(id); //<==== this doesn't work because marker always points to the last results when this function is called } }(marker.id));
Essayez ceci: un exemple qui démontre l'utilisation de ce qui précède va enregistrer ceci connectera JavaScript 1.7 a une instruction code> code> plus agréable, mais jusqu'à ce que cela soit largement pris en charge, vous pouvez Utilisez et utilisez avec code>: p>
10 code> dix fois. p>
0 code> à
9 code>, comme souhaité, grâce à
avec code> introduisant une nouvelle portée. P>
avec code>. p>
var code> pour vos variables. p> p>
Essayez celui-ci Créer une nouvelle fonction p>