hhj*_*hhj 28 javascript google-maps google-maps-api-3
正如标题所述,在一个特定的事件上(对我而言,这恰好是在打开一个新的时候google.maps.InfoWindow我希望能够关闭任何其他当前打开的信息窗口.现在,我可以一次打开很多..但我只想要一次打开1次.
我正在动态创建信息窗口(即我不知道会生成多少个),所以在当前信息窗口的click事件中(我希望所有其他打开的窗口关闭)我不知道t引用任何其他要打开的信息窗口close().我想知道如何实现这一目标.我不是一个经验丰富的JavaScript程序员,所以我不知道我是否需要在这里使用反射或类似的东西.
最好的方法是将所有引用保存在某种集合中,然后遍历列表将它们全部关闭?
谢谢.
jam*_*vey 64
我遇到了同样的问题,并通过创建一个全局信息窗口来修复它.
var infowindow = new google.maps.InfoWindow();
Run Code Online (Sandbox Code Playgroud)
然后我有一个函数在click侦听器上执行以下操作:
function getInfoWindowEvent(marker) {
infowindow.close()
infowindow.setContent("This is where my HTML content goes.");
infowindow.open(map, marker);
}
Run Code Online (Sandbox Code Playgroud)
这实现了我认为你正在寻找的b/c现在地图上只有一个信息窗口我只是关闭它,重新加载内容并再次打开给定的标记.
拥有全球信息,然后改变信息的位置和内容应该足够了.
var infowindow = new google.maps.InfoWindow();
// Call this function to open an infowindow i.e. on click.
function respondToClick(latlng) {
infowindow.setOptions({
position: latlng,
content" "Hello, world"
});
}
Run Code Online (Sandbox Code Playgroud)
由于每次都使用相同的infowindow,因此您保证只打开一个,并且它比创建然后销毁多个infowindows使用更少的资源/内存.
| 归档时间: |
|
| 查看次数: |
27419 次 |
| 最近记录: |