Google Maps API V3关闭InfoBox

时间:2012-07-02 15:03:04

标签: google-maps-api-3

我有一个谷歌地图版本3,我不能按我的意愿工作。当地图打开时,页面上有几个标记,点击或悬停在标记上会打开一个带有酒店名称的信息框。单击另一个标记将关闭第一个InfoBox并在新标记上打开一个新标记。关闭最后一个InfoBox会出现问题。

如果我在选项中允许使用closeBox,那么当InfoBox的其余部分关闭时,closeBox(正方形中的小十字)会留在屏幕上。这仅在InfoBox关闭时才会发生,因为另一个已打开。由于我找不到解决方案,我打算取消closeBox并让用户点击地图的空白区域以摆脱最终的InfoBox。但是,目前,这也不起作用。

问题页面可以在http://www.littlehotels-testdomain.co.uk/spain/abadia.php看到(点击图片右侧的“查看此酒店的位置图”)。

应该使这项工作的代码是:

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

我错过了第二个事件监听器中的某些内容吗?

2 个答案:

答案 0 :(得分:5)

您需要使您的ib(infoBox参考)全局化。把它放在听众函数之外。

答案 1 :(得分:5)

Andy的第47条JavaScript编程规则:永远不要使用全局变量来完成使用jQuery使用单行完成的任务:

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