1

我使用 google.maps.OverlayView 创建了一个 CustomMarkar。

我在 draw 函数中添加了 DomListener :

google.maps.event.addDomListener(div, "click", function (event) {
    alert("div");
    google.maps.event.trigger(self, "click");
});

我已将其添加到 floatPane

var panes = this.getPanes();
panes.floatPane.appendChild(div);

当我创建一个新的 CustomMarker 时,我向它添加了一个 DomListener:

let overlay = new CustomMarker(
    myLatlng,
    this.map,
    options
);
google.maps.event.addDomListener(overlay, 'click', function (event) {
    alert("overlay");
});

最后在地图上有一个监听器:

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

在 PC 浏览器上一切正常:首先触发警报(地图),之后触发警报(div),最后触发警报(覆盖)。

但在移动设备上,只有警报(地图)会触发......

在移动设备上进行这项工作的解决方案是什么?

4

1 回答 1

0

使用“touchend”事件

在您的代码中也只需添加触摸启动事件侦听器

google.maps.event.addDomListener(overlay, 'touchend', function (event) {
    alert("overlay");
});

这对我有用。

于 2018-03-05T05:58:55.040 回答