我在open
对象上遇到infoWindow
方法的问题。
我想动态设置我的所有地图实用程序对象但是当调用open
方法时,它会引发错误,因为关联的infoWindow
对象是undefined
。
这是我的代码:
// Markers & infoWindows
var markers = [];
var infoWindows = [];
for(var i=0; i<myList.length; i++) {
markers.push(
new google.maps.Marker({
position: myList[i].coord,
map: map,
title: myList[i].city
})
);
infoWindows.push(
new google.maps.InfoWindow({
content: myList[i].address
})
);
markers[i].addListener('click', function() {
infoWindows[i].open(map, markers[i]);
});
}
[其中myList
只是JSON格式化对象的结果。 ]
所有标记和infoWindows都设置得很好。我可以访问他们的属性并将它们打印到控制台。
但正如我所说,infoWindows[i]
输入未定义,因此找不到open
方法。相反,我可以访问并打印此content
对象的infoWindows[i]
属性。对我来说似乎很奇怪......
如果有人能够解释我,我会很高兴:)