【发布时间】:2011-02-25 07:23:33
【问题描述】:
我目前这样做是为了为我的谷歌地图创建标记。
function createMarker(posn, title, html) {
var marker = new google.maps.Marker({ position: posn, title: title, draggable: false });
marker['infowindow'] = new google.maps.InfoWindow({ content: html });
infoWindows.push(marker['infowindow']);
google.maps.event.addListener(marker, "click", function () {
for (i = 0; i < infoWindows.length; i++) {
infoWindows[i].close();
}
this['infowindow'].open(map, this);
});
return marker;
}
我对 for 循环不满意,为了关闭标记,我知道可以通过使用一个引用来完成类似的事情:
if (infowindow) infowindow.close();
我使用上述代码的原因是因为我正在做类似markers[myPoint]['infowindow'].open(map, markers[myPoint]); else where(myPoint 是一个数字)之类的事情。
我怎样才能避免这个 for 循环来关闭打开的 infowindows 并以很好的方式做到这一点?
【问题讨论】: