如何“模拟”点击Google地图标记?

16

我想要做的是在一个标记上调用点击处理程序。 这是我的代码:

var marker = new google.maps.Marker({
    position: location,
    map: map,
    title: title
});    

google.maps.event.addListener(marker, 'click', function() {
    alert("clicked");
});        

marker.click();

但我看不到任何警报...


请查看此处:http://code.google.com/apis/maps/documentation/javascript/events.html#EventListeners - Syed Aslam
1
已经阅读了,但它并没有解释我的请求 :O - markzzz
2个回答

32

可以使用google.maps.event.trigger函数在任何对象上触发Maps API的任何事件监听器。

根据您的事件监听器对其执行的操作,您可能需要传入一个模拟的MouseEvent对象。

示例:

google.maps.event.trigger(marker, 'click', {
  latLng: new google.maps.LatLng(0, 0)
});

你能给我一个例子吗? - markzzz
这实际上并没有回答我的问题 :O - markzzz
是的,这正是我给你的。我不明白你不明白什么。将我的答案中的代码添加到您的示例代码末尾,您应该会看到一个弹出警报。 - Chris Broadfoot
1
不,它不会触发所有标记。它只会在您作为第一个参数传递的标记上触发它。 - Chris Broadfoot
这个解决方案在集群标记(其中一个组标记)情况下不起作用。如果您有建议,请分享。谢谢。 - Kamlesh

7

将您的标记存储在数组中。然后执行以下操作:

$('#anotherButton').click(function(){
   google.maps.event.trigger(marker[index], 'click');
});

这个解决方案在集群标记(其中一个组标记)的情况下不起作用。如果您有建议,请分享。谢谢。 - Kamlesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接