【问题标题】:Google Maps API V3 Closing InfoBoxGoogle Maps API V3 关闭信息框
【发布时间】:2012-07-02 15:03:03
【问题描述】:

我有一个 Google 地图第 3 版,我无法完全按照我的意愿工作。当地图打开时,页面上有几个标记,单击或悬停在标记上会打开一个带有酒店名称的小信息框。单击另一个标记会关闭第一个信息框并在新标记上打开一个新信息框。问题在于关闭最后一个信息框。

如果我在选项中允许 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);
    });

第二个事件监听器中是否有我遗漏的东西?

【问题讨论】:

    标签: google-maps-api-3


    【解决方案1】:

    您需要使您的 ib(信息框参考)全球化。把它放在你的 Listener 函数之外。

    【讨论】:

    • 谢谢埃里克。经过一番折腾,我得到了它完全按照我想要的方式工作。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-01-07
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      相关资源
      最近更新 更多