我的问题是所有的infowindows都有相同的内容(最后一个数组对象)。我找到的答案似乎都不适合我。
function addMapMarkers(data) {
removeMarkers();
for(i=0; i<data.length; i++){
var location = {lat: + data[i].koordinatLatLng[0], lng: + data[i].koordinatLatLng[1]};
var marker = new google.maps.Marker({
position: location,
map: map,
clickable: true
});
marker.info = new google.maps.InfoWindow({
content: "Navn: " + data[i].navn
});
google.maps.event.addListener(marker, 'click', function() {
marker.info.open(map, this);
});
map.markers.push(marker);
};
};
答案 0 :(得分:0)
你应该使用一个闭包
function addMapMarkers(data) {
var addListenerOnPoint = function(actMark, actNavn){
$('.gm-style-iw').prev('div').remove();
var actContent = '<div><strong>' +actNome +
'</strong><br/>' + actDescrizione + '<div>';
var aInfowindow = new google.maps.InfoWindow({
content: "Navn: " + actNavn;
});
actMark.addListener('click', function() {
aInfowindow.open(map, actMark);
});
}
removeMarkers();
for(i=0; i<data.length; i++){
var location = {lat: + data[i].koordinatLatLng[0], lng: + data[i].koordinatLatLng[1]};
var marker = new google.maps.Marker({
position: location,
map: map,
clickable: true
});
addListenerOnPoint(marker,data[i].navn);
map.markers.push(marker);
};
};
答案 1 :(得分:0)
或者,如果您不想使用更多闭包,则可以使用let关键字
let marker = new google.maps.Marker({
position: location,
map: map,
clickable: true
})