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>