On dirait que vous tomber dans la boucle, plus classique erreur -fermeture, qui sous une forme simplifiée ressemble à ceci:
while(i<=(a_l-1)) {
// snip
var marker = new google.maps.Marker({
// snip
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
// snip
}
le problème est que, en raison de la fermeture façon de travailler en Javascript, la fonction de gestionnaire conservera une référence permanente à la variable , même après avoir affecté à un nouvel objet. Résultat final: tous vos gestionnaires référencent le dernier objet affecté à .
Il y a plusieurs façons de résoudre ce problème; J'utilise généralement une fonction distincte pour affecter le gestionnaire de clic, qui capture l'objet correct dans le champ d'application du gestionnaire:
function addClickHandler(marker) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
while(i<=(a_l-1)) {
var marker = new google.maps.Marker({
// snip
});
addClickHandler(marker);
}
Alors qu'il est bon de c'est généralement mieux poster un lien vers un exemple, * aussi * extraits de poste de le code pertinent, afin que nous puissions voir ce que vous avez essayé. – nrabinowitz
Très bien, je le ferai la prochaine fois. Je l'ai compris, cependant. – user981408