2011-04-27 64 views
2

过去几周我们一直在研究基于Google Maps API v3的应用,当时我们发现某种标记的点击事件已停止工作。我们改变了大小并增加了这些标记的数量,假设我们的代码很糟糕,但回复没有解决问题。单击Google Maps API v3上的侦听器事件不起作用

我们的代码非常简单。创建标记(在本例中称为OBJ)后,我们会做到以下几点:

google.maps.event.addListener(obj, 'click', 
    function(coords){ localClick(coords, id); }); 

localClick是我们的功能之一,alert('click!');也取得了什么。

经过几天的摸爬滚打,我们注意到一些奇怪的现象:的一些标记正在工作。然后,我们发现的,共有点击几乎看不见的标记,但在错误的地方水平线:

enter image description here

这种情况对OSX所有的浏览器(我们没有在Windows或Linux试试)。

一个解决方案是指定您使用的v3.2的API版本。这并不理想,因为我们希望保持最新状态。直到最近,它正在开发最新版本(v3.4)。

这样调用谷歌地图API中,它不工作:

$.getScript("https://maps-api-ssl.google.com/maps/api/js? 
    sensor=false&callback=mapLoaded"); 

像这一切的伟大:

$.getScript("https://maps-api-ssl.google.com/maps/api/js? 
    sensor=false&v=3.2&callback=mapLoaded"); 

我们很不解。

不幸的是,我们不能发布代码或工作演示(我知道这降低了响应率,客户端要求)。

回答

2

如果您为标记使用自定义叠加层,则使用错误的MapPane可能是问题的原因。某些窗格可能不会收到如在map api reference中所述的dom事件这是我想到的唯一的事情。

+0

这很有趣。尽管我认为MarkerManager(由Google提供)正在使用它们,但MapPanes并未在我们的代码中的任何位置引用。错误的定位如何与MapPane理论相适应? – 2011-04-29 04:04:37

+0

它不适合,与你提供的细节,我只是抛出一个想法,因为你没有使用自定义覆盖,我的理论崩溃:) – solidrevolution 2011-04-29 05:07:02

+0

感谢您去了解它。看起来它最终成为新代码中的一个错误,可能与MarkerManager工具包交互。 – 2011-08-08 22:05:19

相关问题