Javascript 谷歌地图API-如果信息窗口已经打开以停止闪烁,如何在点击时不加载/打开信息窗口
简单的问题,但无论如何找不到不这样做 打开任何具有infowindows的google地图api演示。单击标记,它将打开信息窗口。不断地快速点击它,它会重新加载,这会导致信息窗口闪烁 你知道如何陈述、观察或检查它是否已经打开,而不是真正这样做吗? 在引用中找不到任何代码Javascript 谷歌地图API-如果信息窗口已经打开以停止闪烁,如何在点击时不加载/打开信息窗口,javascript,google-maps,Javascript,Google Maps,简单的问题,但无论如何找不到不这样做 打开任何具有infowindows的google地图api演示。单击标记,它将打开信息窗口。不断地快速点击它,它会重新加载,这会导致信息窗口闪烁 你知道如何陈述、观察或检查它是否已经打开,而不是真正这样做吗? 在引用中找不到任何代码 google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); 因此,某种if语句或代码可以判断我的
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
因此,某种if语句或代码可以判断我的窗口是否已打开为not,在打开之前,可以调用
infowindow.close()
?不,这只是重新触发并导致闪烁。威尔回答说:“我找到了一个解决办法。感谢投反对票的人。”。如果你正在做位置感知标记显示,因为你不想让它不断闪烁,这一点非常重要。因此,使用原型生成一个布尔函数并声明为false。然后在onclick中检查状态(窗口是否已打开),在onclose中,我犯的错误是引用标记作为第一个参数,但它必须是infowindow。
google.maps.InfoWindow.prototype.opened = false;
var infowindow ;
var marker;
google.maps.event.addListener(marker, 'click', function() {
if (infowindow.opened){
//do nothing its already open
}else{
infowindow.open(map,marker); //open it
infowindow.opened=true;
}
});
google.maps.event.addListener(infowindow, 'closeclick', function() {
infowindow.opened=false; //reset so that when closed it can be reopened again
});