gpt4 book ai didi

javascript - infowindow.close() 不与多个标记一起使用

转载 作者:行者123 更新时间:2023-11-30 10:34:55 25 4
gpt4 key购买 nike

我阅读了很多解决方案并尝试了几个,但在我的脚本中我无法完成它。

我喜欢在单击另一个标记时关闭事件信息窗口。

部分代码:

        for (var i = 0; i < locations.length; i++) {
var centrum = locations[i];
var myLatLng = new google.maps.LatLng(centrum[1], centrum[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
animation: google.maps.Animation.DROP,
icon: image,
shape: shape,
title: centrum[0],
zIndex: centrum[3]
});
marker['infowindow'] = new google.maps.InfoWindow({
content: '<b>Informatie:</b><br>' + centrum[0]
});
google.maps.event.addListener(marker, 'click', function() {
marker['infowindow'].close(); // has to close another active window
this['infowindow'].open(map, this);
});
}

有人提示或更好...解决方案?

谢谢。

最佳答案

将标记保存在数组中并添加一个函数调用以在打开当前窗口之前关闭所有窗口:

function closeInfos() {
for(var i=0; i<markers.length; i++)
{
markers[i]['infowindow'].close();
}
}

编辑:

使用您的代码,它应该看起来像这样:

var markers = [];
for (var i = 0; i < locations.length; i++) {
var centrum = locations[i];
var myLatLng = new google.maps.LatLng(centrum[1], centrum[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
animation: google.maps.Animation.DROP,
icon: image,
shape: shape,
title: centrum[0],
zIndex: centrum[3]
}));
marker['infowindow'] = new google.maps.InfoWindow({
content: '<b>Informatie:</b><br>' + centrum[0]
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', function() {
closeInfos();
this['infowindow'].open(map, this);
});
}

关于javascript - infowindow.close() 不与多个标记一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14611729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com