Как добавить прослушиватель событий в OverlayView?
Я пытаюсь создать OverlayView на карте Google в качестве пользовательского маркера.
Мне удалось успешно создать OverlayView, как показано ниже.
http://plnkr.co/edit/4XDANE?p=preview
Однако, когда я пытаюсь добавить слушателей событий, я застрял.
Я попробовал следующее без удачи.
// ------------- Trying To Add DOM Event Listener ---
google.maps.event.addDomListener(this.div, 'click', function(){
alert(1); // NOT working
})
// ------------- Or, this ---
this.div.addEventListener('click',function() {
alert(1); // NOT working
});
Кто-нибудь сделал это успешно?
----- обновление ---- Как предполагает @dr-molle, следующее принимает щелчок мышью.
//panes.overlayLayer.appendChild(div); NOT THIS
panes.overlayMouseTarget.appendChild(div); // But, This
// ------------- Trying To Add DOM Event Listener ---
google.maps.event.addDomListener(this.div, 'click', function(){
alert(1); // working
})
1 ответ
Решение
Вы должны использовать другой pane
для слоя.
В настоящее время вы используете overlayLayer
, но только overlayMouseTarget
а также floatPane
может получать DOM-события.
Я бы предложил использовать overlayMouseTarget
в этом случае ваши оверлеи будут работать как маркеры (InfoWindows будет открыта перед оверлеями)