Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图API-如果信息窗口已经打开以停止闪烁,如何在点击时不加载/打开信息窗口_Javascript_Google Maps - Fatal编程技术网

Javascript 谷歌地图API-如果信息窗口已经打开以停止闪烁,如何在点击时不加载/打开信息窗口

Javascript 谷歌地图API-如果信息窗口已经打开以停止闪烁,如何在点击时不加载/打开信息窗口,javascript,google-maps,Javascript,Google Maps,简单的问题,但无论如何找不到不这样做 打开任何具有infowindows的google地图api演示。单击标记,它将打开信息窗口。不断地快速点击它,它会重新加载,这会导致信息窗口闪烁 你知道如何陈述、观察或检查它是否已经打开,而不是真正这样做吗? 在引用中找不到任何代码 google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); 因此,某种if语句或代码可以判断我的

简单的问题,但无论如何找不到不这样做

打开任何具有infowindows的google地图api演示。单击标记,它将打开信息窗口。不断地快速点击它,它会重新加载,这会导致信息窗口闪烁

你知道如何陈述、观察或检查它是否已经打开,而不是真正这样做吗? 在引用中找不到任何代码

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
});