Mon code est ci-dessous, et j'ai eu un problème avec presque le même code, et il a été corrigé ici sur StackOverflow, mais, encore une fois, son ne fonctionne pas. Je n'ai pas changé le code de travail, mais je l'ai enveloppé dans la boucle for...in
que vous verrez ci-dessous. Le problème est que peu importe le marqueur sur lequel je clique, il déclenche toujours le dernier marqueur/infoWindow qui a été placé.Broken JS Loop avec Google Maps
$(function(){
var latlng = new google.maps.LatLng(45.522015,-122.683811);
var settings = {
zoom: 10,
center: latlng,
disableDefaultUI:true,
mapTypeId: google.maps.MapTypeId.SATELLITE
};
var map = new google.maps.Map(document.getElementById("map_canvas"), settings);
$.getJSON('api',function(json){
for (var property in json) {
if (json.hasOwnProperty(property)) {
var json_data = json[property];
var the_marker = new google.maps.Marker({
title:json_data.item.headline,
map:map,
clickable:true,
position:new google.maps.LatLng(
parseFloat(json_data.item.geoarray[0].latitude),
parseFloat(json_data.item.geoarray[0].longitude)
)
});
var infowindow = new google.maps.InfoWindow({
content: '<div><h1>'+json_data.item.headline+'</h1><p>'+json_data.item.full_content+'</p></div>'
});
new google.maps.event.addListener(the_marker, 'click', function() {
infowindow.open(map,the_marker);
});
}
}
});
});
Merci pour votre compréhension!
Sweet! fonctionne, eh bien, j'ai eu un autre problème, mais je pense que je peux comprendre à partir de cela ... le même contenu (voir infowindow var) apparaît dans chacun d'eux. Donc, im essayant de créer une fonction pour capturer la valeur pour cela aussi. Merci encore! –
Nice, en fait, ajouté var infowindow à la fonction buildHandler, fonctionne comme un charme, Merci beaucoup! –
@Oscar: Doh! J'ai raté cela aussi varié sur chaque boucle. Mais bon, appelez ça la partie "gauche comme exercice pour le lecteur". ;-) –