【问题标题】:Google Map V3 - Allow only one infobox to be displayed at a timeGoogle Map V3 - 一次只允许显示一个信息框
【发布时间】:2012-06-10 02:38:01
【问题描述】:

我正在从 infoWindow 移动到 infoBox 以获得更好看的信息窗口。

我在地图上有许多标记。我想要做的是当一个infoBox已经打开时,如果用户点击其他标记,当前infoBox将自动关闭,新infoBox将打开,这样用户就不需要关闭当前@ 987654328@,并且每次只会显示一个infoBox。

这是我当前解决方案的演示和代码 http://jsfiddle.net/neo3000ultra/9jhAy/

提前致谢!

【问题讨论】:

  • @Sean Mickey 这是 infoBox,不是 infoWindow
  • 对,对,我知道,但它是相同的概念、设计和基本代码。但无论如何,您已经找到了解决问题的方法,这才是最重要的。

标签: google-maps google-maps-api-3


【解决方案1】:

对于单个信息窗口的通常建议是只创建一个,然后将其用于所有标记(更改其内容)。

这是一个使用 v3 API 执行此操作的示例(我认为它是“v2 信息窗口行为”,因为 v2 API 只允许单个信息窗口) http://www.geocodezip.com/v3_markers_normal_colored_infowindows.html

这是另一个基于 Mike Williams 的 v2 教程的示例: http://www.geocodezip.com/v3_MW_example_map1.html

并且您的示例已修改: http://jsfiddle.net/uGnQb/6/

【讨论】:

  • 谢谢。我尝试创建一个 infoBox 对象并重用它,但无法让它工作......
  • 嗨,我在您的解决方案中发现了一个非常棘手的问题。它在 Firefox 中运行良好,但是如果您在 IE9 中测试它,当您单击 marker2 时,然后通过单击 marker1 将其关闭,然后再次单击 marker2,则不会显示 marker2 的 infoBox 的内容,而是显示损坏的 infoBox。你知道发生了什么吗?
  • 我没有 IE 9,在 IE 8 中,调试器指向 infoBox 库中的问题。我建议使用普通的 infoWindow,或者修复 infoBox 中的问题。
  • 这与我在 IE8 中看到的问题相同。我之前的建议适用。
【解决方案2】:

更改此部分:

        google.maps.event.addListener(marker, "click", function (e) {
            ib.open(map, this);
        });

        var ib = new InfoBox(myOptions);

       google.maps.event.addListener(marker2, "click", function (e) {
            ib2.open(map, this);
        });

        var ib2 = new InfoBox(myOptions2);

以下内容:

    var ib = new InfoBox();

    google.maps.event.addListener(marker, "click", function (e) {
        ib.close();
        ib.setOptions(myOptions)
        ib.open(map, this);
    });

   google.maps.event.addListener(marker2, "click", function (e) {
        ib.close();
        ib.setOptions(myOptions2)
        ib.open(map, this);
    });

适用于我,也在 IE9 中:http://jsfiddle.net/doktormolle/9jhAy/1/

注意在打开信息框之前使用ib.close(),似乎是诀窍。

【讨论】:

    猜你喜欢
    • 2012-11-12
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2011-02-26
    相关资源
    最近更新 更多