我的JS有一个小问题,
当我悬停所有不同的标记时,它们没有显示我认为我明白为什么,但我不知道如何解决它
所以有我的代码:
for (var i = 0; i < latLng.length; i++) {
var mark = new google.maps.Marker({
map: map,
animation: google.maps.Animation.DROP,
position: latLng[i]
});
var info = new google.maps.InfoWindow({
content: contentString[i]
});
mark.addListener('mouseover', function() {
info.open(map, mark);
setTimeout(function() {infowindow.close()}, 5000);
})
mark.addListener('click', function() {
map.setZoom(15);
map.setCenter(myLatLng);
});
}
latLng
是一个包含{lat: alatitude, long: alongitude}
和 contentString 是一个数组,其中包含类似"hello"的项目它向我显示所有标记,但它仅在我的最后一个标记上显示信息窗口
我认为这是因为我的变量被下一个变量删除了我尝试使用像 down 这样的数组,但它不起作用。
for (var i = 0; i < latLng.length; i++) {
var marks = new Array();
var infos = new Array();
marks.push(new google.maps.Marker({
map: map,
animation: google.maps.Animation.DROP,
position: latLng[i]
}));
infos.push(new google.maps.InfoWindow({
content: contentString[i]
}));
marks[i].addListener('mouseover', function() {
infos[i].open(map, marks[i]);
setTimeout(function() {infowindow.close()}, 5000);
})
marks[i].addListener('click', function() {
map.setZoom(15);
map.setCenter(myLatLng);
});
}
我将这部分隔离在一个函数中,它可以工作:
var mark = new google.maps.Marker({
map: map,
animation: google.maps.Animation.DROP,
position: latLng[i]
});
var info = new google.maps.InfoWindow({
content: contentString[i]
});
mark.addListener('mouseover', function() {
info.open(map, mark);
setTimeout(function() {infowindow.close()}, 5000);
})
mark.addListener('click', function() {
map.setZoom(15);
map.setCenter(myLatLng);
});