for (var i=0; i<layerCount; i++){
for (var j=0; j<layerData[i].data.length; j++){
var text = layerData[i].data[j].text;
var latlng = new google.maps.LatLng(layerData[i].data[j].lat, layerData[i].data[j].lng);
var marker = new google.maps.Marker({map: map, position: latlng});
var infowindow = new google.maps.InfoWindow({content: text});
google.maps.event.addListener(marker, 'click', function() {infowindow.open(map,marker);});
}
}
Проблема в приведенном выше коде, скорее всего, заключается в строке, начинающейся с google.maps.event.addListener
.Какой бы маркер я ни щелкнул, у меня открывается информационное окно для последнего элемента в поле данных layerdata[i].data[j]
.Похоже, что я звоню по ссылке, а не по значению, поэтому infowindow
и marker
для всех слушателей являются последними элементами в массивах.
Но как я могу решить эту проблему?большое спасибо!