我正在使用谷歌地图的 API。我有一组标记和一组信息窗口,我试图在单击标记时显示相应的信息窗口。我无法理解我应该如何添加我的事件侦听器,以便它尊重 JavaScript 闭包。
(不正确)代码,所有这些都包含在initialize()
页面加载时调用的代码中:
var markers = []
var infoWindows = []
[define all markers and info windows here, long so cut]
for (var i = 0; i < markers.length; i++)
{
google.maps.event.addListener(markers[i], 'click', function() {
infoWindows[i].open(mymap, markers[i]);
});
}
在来到这里之前,我已确保我的所有对象都已正确初始化。
我对我的问题的理解是,当点击事件发生时,infoWindows[i]
不再可以访问。我该怎么做才能让eventListener
我认为它应该工作,infoWindow
数组中第 i 个位置的位置对应于第 i 个位置的标记?