如何在Google Maps V3上触发标记的onclick事件?


128

如何从地图外部触发Google地图上标记的onclick事件?

我使用API的版本3。我已经看过许多有关版本2的教程,但是找不到关于版本3的教程。

我有一个全局数组(名为markers),其中包含地图的所有标记(google.maps.Marker)。现在我想做类似的事情:

markers[i].click(); //I know it's not working, but you get the idea...

//Next line seems to be the way in v2, but what's the equivalent in v3?
GEvent.trigger(markers[i], 'click');

感谢您的帮助,如果您需要更多信息,请告诉我!

Answers:


331

我找到了解决方案!感谢Firebug;)

//"markers" is an array that I declared which contains all the marker of the map
//"i" is the index of the marker in the array that I want to trigger the OnClick event

//V2 version is:
GEvent.trigger(markers[i], 'click');

//V3 version is:
google.maps.event.trigger(markers[i], 'click');

单击是触发,但在我的情况下,信息窗口无法适应地图,因此略有缩小。
Saboor Awan

3
@Saboor Awan尝试提出有关此问题的特定问题,因为注释不是解决此问题的最佳方法。
AlexV 2011年

这仍然是正确的。请记住,jQuery也具有一个trigger()功能。在我的情况下,智能感知弹出,导致我调换了论据。
皮特2012年

3
对于v3这样做会给我TypeError: a is undefined in main.js (line 16, col 894)什么原因呢?
2014年

1
@invot如果没有看到代码真的无法帮忙,但是我在快速搜索时发现了同样的问题...尝试使用像素(px)而不是百分比(%)在CSS中设置“ popupMapIn”宽度和高度。
AlexV 2014年

9

对于未来的Google员工,如果在触发点击多边形后出现以下类似错误

"Uncaught TypeError: Cannot read property 'vertex' of undefined"

然后尝试下面的代码

google.maps.event.trigger(polygon, "click", {});
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.