Не работает событие клика Google Maps CustomMarker OverlayView на мобильном устройстве

Я создал CustomMarkar, используя google.maps.OverlayView.

Я добавил 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");
});

Все отлично работает в браузере ПК: сначала запускается оповещение (карта), затем оповещение (div) и, наконец, оповещение (overlay).

Но на мобильных устройствах срабатывает только оповещение (карта)....

Какое решение сделать эту работу на мобильных устройствах?

1 ответ

использовать событие "touchend"

В своем коде просто добавьте прослушиватель событий start start

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

Это сработало для меня.

Другие вопросы по тегам