OverlayView如何添加事件监听器?
How To Add Event Listener To OverlayView?
我正在尝试在 google 地图上创建一个 OverlayView 作为自定义标记。
我能够成功创建如下所示的 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
})
您必须为图层使用不同的 pane
。
目前您使用 overlayLayer
,但只有 overlayMouseTarget
和 floatPane
可以接收 DOM-事件。
我建议使用 overlayMouseTarget
,在这种情况下,您的叠加层就像标记一样(InfoWindows 将在叠加层前面打开)
我正在尝试在 google 地图上创建一个 OverlayView 作为自定义标记。
我能够成功创建如下所示的 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
})
您必须为图层使用不同的 pane
。
目前您使用 overlayLayer
,但只有 overlayMouseTarget
和 floatPane
可以接收 DOM-事件。
我建议使用 overlayMouseTarget
,在这种情况下,您的叠加层就像标记一样(InfoWindows 将在叠加层前面打开)