如果google.maps.Rectangle和InfoBox重叠,则地图上的Click事件会触发两次

时间:2018-10-24 07:07:56

标签: javascript google-maps-api-3

我正在使用Google Maps API v.3和自定义InfoBox

问题是如果Clickgoogle.maps.Rectangle重叠,尽管InfoBox的InfoBox更高,则地图上的pane事件会触发两次{{1}中的pane

默认的google.maps.Rectangle正常工作,并且google.maps.InfoWindow事件不会在诸如click之类的基础元素上“渗透”。

我出于测试目的准备了small example

如何避免这种渗滤?

1 个答案:

答案 0 :(得分:0)

当您单击地图中的任何内容时,单击事件"bubbles"一直到到达地图的根元素为止。然后,事件处理程序根据单击的坐标来确定单击的内容。

一种阻止问题发生的方法是阻止click事件到达地图根目录。

这是通过在事件上调用event.stopPropagation()来完成的。您可以添加执行此操作的事件处理程序;例如在您的信息框中:

var infobox_options = {
    content: '<div onclick="event.stopPropagation()" style="cursor:default;width:100px;height:100px;border:2px solid #000;text-align:center;background:pink;z-index:10;"><a style="z-index:999" target="_blank" href="http://vk.com">CLICK</a></div>',
    disableAutoPan: true,
    //pixelOffset: pixelOffset,
    position: point,
    closeBoxURL: "",
    isHidden: false,
    pane: "floatPane",
};