点击Google Maps API v3上的侦听器事件无效

时间:2011-04-27 06:23:48

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

过去几周我们一直在研究基于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");

我们感到困惑。

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

1 个答案:

答案 0 :(得分:2)

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