Javascript Infowindow赢得';单击时不会弹出
我正在尝试获取标记的信息窗口,我已设置为具有动态内容,但我一直遇到的问题是,单击时信息窗口将根本无法打开 我相信我可能以错误的方式实现了代码信息窗口 代码Javascript Infowindow赢得';单击时不会弹出,javascript,google-maps,Javascript,Google Maps,我正在尝试获取标记的信息窗口,我已设置为具有动态内容,但我一直遇到的问题是,单击时信息窗口将根本无法打开 我相信我可能以错误的方式实现了代码信息窗口 代码 var mosqueMarker, count; for (count = 0; count < mosqueLocations.length; count++){ mosqueMarker = new google.maps.Marker({ position: new google.maps.LatLng
var mosqueMarker, count;
for (count = 0; count < mosqueLocations.length; count++){
mosqueMarker = new google.maps.Marker({
position: new google.maps.LatLng(mosqueLocations[count][1], mosqueLocations[count][2]),
title: mosqueLocations[count][0],
map: map
})
}
var mosqueInfowindow = new google.maps.InfoWindow({})
mosqueMarker.addListener('click', function(count) {
mosqueInfowindow.setContent(mosqueLocations[count][0]),
console.log(mosqueLocations)
mosqueInfowindow.open(map, mosqueMarker)
})
var mosqueMarker,计数;
对于(计数=0;计数
您需要(至少)改变三件事:
mosqueMarker
事件侦听器移动到循环中count
变量的函数闭包this
引用侦听器函数中的标记(否则它将始终打开循环中最后一个标记的信息窗口)您仅将单击事件处理程序添加到最后一个标记。可能的副本:
for (var count = 0; count < mosqueLocations.length; count++) {
var mosqueMarker = new google.maps.Marker({
position: new google.maps.LatLng(mosqueLocations[count][1], mosqueLocations[count][2]),
title: mosqueLocations[count][0],
map: map
});
mosqueMarker.addListener('click', (function(count) {
return function(evt) {
mosqueInfowindow.setContent(mosqueLocations[count][0]),
console.log(mosqueLocations)
mosqueInfowindow.open(map, this)
}})(count))
}