2015-08-25 56 views
0

我想在Google地圖上創建一個OverlayView作爲自定義標記。如何將事件監聽器添加到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 
    }); 

任何人都成功了嗎?

----- update ---- 根據@ 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 
    }) 
+0

不知道(信息窗口將在覆蓋前被打開),但你想實現這樣的事情 - HTTP:/ /humaan.com/custom-html-markers-google-maps/? –

回答

2

您必須爲圖層使用不同的pane

當前您使用overlayLayer,但只有overlayMouseTargetfloatPane可能會收到DOM事件。

我會建議使用overlayMouseTarget,你的覆蓋會像在這種情況下標記

+0

'InfoWindows將在覆蓋圖前面打開。但我不明白這一點。 – allenhwkim

+0

我們假設有infoWindows將會在地圖上打開(您自己實現的自定義InfoWindows或內置infowindows,例如,當用戶點擊POI時)......它們將始終覆蓋您的自定義疊加層。 –