Google maps api 3 谷歌地图API V3关闭信息盒

Google maps api 3 谷歌地图API V3关闭信息盒,google-maps-api-3,Google Maps Api 3,我有一个谷歌地图版本3,我不能完全得到我想要的工作。当地图打开时,页面上有几个标记,单击或悬停在标记上会打开一个带有酒店名称的小信息框。单击另一个标记将关闭第一个信息框,并在新标记上打开一个新信息框。问题在于关闭最后一个信息框 如果我在选项中允许使用closeBox,则当信息框的其余部分关闭时,closeBox(正方形中的小十字)会留在屏幕上。只有当信息框关闭时才会发生这种情况,因为另一个信息框已打开。由于我找不到解决方案,我打算取消closeBox,让用户单击地图的空白区域以摆脱最终的信息框。

我有一个谷歌地图版本3,我不能完全得到我想要的工作。当地图打开时,页面上有几个标记,单击或悬停在标记上会打开一个带有酒店名称的小信息框。单击另一个标记将关闭第一个信息框,并在新标记上打开一个新信息框。问题在于关闭最后一个信息框

如果我在选项中允许使用closeBox,则当信息框的其余部分关闭时,closeBox(正方形中的小十字)会留在屏幕上。只有当信息框关闭时才会发生这种情况,因为另一个信息框已打开。由于我找不到解决方案,我打算取消closeBox,让用户单击地图的空白区域以摆脱最终的信息框。然而,目前,这也不起作用

问题页面位于(单击照片右侧的“查看该酒店的位置图”)

实现此功能的代码位是:

      google.maps.event.addListener(hotelmarker, 'mouseover', function() {
    var ib = new InfoBox(ibOptions);
    boxText.innerHTML = hotelname;
    ib.open(map, hotelmarker);
    });
  google.maps.event.addListener(map, 'click', function() {
    ib.close(map, hotelmarker);
    });

第二个事件侦听器中是否有我遗漏的内容?

您需要将ib(信息框引用)设置为全局。把它放在监听器函数之外。

Andy的JavaScript编程第47条规则:永远不要使用全局变量来完成使用jQuery一行就可以完成的事情:

$(".infoBox").hide();

谢谢你,埃里克。在做了一点杂耍之后,我让它完全按照我想要的那样工作。