过去几周我们一直在研究基于Google Maps API v3的应用,当时我们注意到某种类型标记上的点击事件已停止工作。我们已经改变了大小并增加了这些标记的数量,假设我们的代码很糟糕,但是恢复并没有解决问题。
我们的代码非常简单。创建标记(在本例中称为obj)后,我们将执行以下操作:
google.maps.event.addListener(obj, 'click',
function(coords){ localClick(coords, id); });
localClick
是我们的功能之一,alert('click!');
也没有产生任何功能。
经过几天挠头之后,我们注意到一些奇怪的事情:一些标记正在工作。然后我们注意到一条几乎看不见的标记的水平线,这些标记可以点击但是在错误的地方:
这种情况发生在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");
我们感到困惑。
不幸的是我们无法发布代码或工作演示(我知道这会降低响应率,客户端要求)。
答案 0 :(得分:2)
如果您为标记使用自定义叠加层,则使用错误的MapPane可能是导致问题的原因。有些窗格可能没有收到map api reference中所述的dom事件。这是我唯一想到的事情。