Javascript/Google 地图,自动创建的组合框在第二次迭代中失败

Posted

技术标签:

【中文标题】Javascript/Google 地图,自动创建的组合框在第二次迭代中失败【英文标题】:Javascript/Google Maps, autocreated combo box failing on second iteration 【发布时间】:2010-10-04 04:46:59 【问题描述】:

我对 javascript 和 GoogleMaps API 还是很陌生。我在用标记填充的地图有问题。我有一个组合框,允许用户选择标记并突出显示标记在屏幕上为他们弹出一个信息框。

使用 Mike Williams 关于 google maps API (http://econym.org.uk/gmap/index.htm) 的优秀教程,我有了一个良好的开端,并且我的大部分应用程序都能正常工作。

这个问题可以归结为这个链接,它是 Mike William 的一个例子的轻微修改版本:

http://duncanmargetts.com/map3.html

在页面的初始加载时,您可以看到填充了 100 个标记。在 GEvent 上为每个标记创建一个事件侦听器,当用户从组合框中选择一个项目时,将显示信息框。.

我添加了一个 SetInterval,它每 8 秒重绘一次地图。重绘地图后,组合框仍会加载正确的内容,但事件侦听器不会触发。. 看不到弹出信息框。

重建步骤:

    点击链接 (http://duncanmargetts.com/map3.html)

    立即从屏幕底部的下拉框中选择一个项目...观察关联的标记是否出现了弹出框。

    等待 setInterval 至少 8 秒触发..

    从 ComboBox 中选择一个项目.. 观察没有任何反应:(

关于代码的一些信息是:

drawMap() 在页面第一次加载时被调用。 此后,SetInterval 每 8 秒调用一次 drawMap()。

drawMap 检索一个包含 100 个标记的详细信息的 XML 文件,并为每个标记调用“createMarker”.. 在构建 select_html 的过程中,一个字符串,在标记的迭代结束时,它被放置在一个div ("selection") 使用 document.getElementById("selection").innerHTML = select_html;

我猜也许我没有清除旧的听众..也许..我看过 GEvent.clearListeners 但无法解决a)这是我需要的还是b)如何将它集成到我的代码中.

非常感谢您阅读本文。如果您有任何想法,我当然会非常感激..

非常感谢,

邓肯。

【问题讨论】:

【参考方案1】:

变量 i = 0;在第 32 行没有在每次地图重新加载时重置为零..

邓肯。

【讨论】:

以上是关于Javascript/Google 地图,自动创建的组合框在第二次迭代中失败的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript Google Map v3异步地图

Javascript Google地图,按经度和纬度坐标显示图钉[重复]

Unversioned Javascript Google Maps API参考拉(破)实验版

Python小程序之「读取站点地图 自动为Gitalk创建Issues」

带有多个标记的谷歌地图自动中心

没有高清地图的自动驾驶将引发严重的安全问题