3

我一直試圖讓右擊工作在我的標記,但到目前爲止似乎只是事件不會觸發。作爲一種變通方法我目前檢測在地圖上點擊右鍵,然後找到最近的標記,並觸發右鍵方法 - 顯然那不是很大。右鍵點擊標記 - 谷歌地圖V3

根據該文檔,標記確實有右擊事件,所以我不知道我做錯了。 https://developers.google.com/maps/documentation/javascript/reference#Marker

google.maps.event.addListener(marker, 'rightclick', handleRightClick) 

不工作,但

google.maps.event.addListener(map, 'rightclick', handleRightClick) 

工作正常。一樣:

google.maps.event.addListener(marker, 'click', handleRightClick) 

我還使用稱爲markerWithLabel自定義標記插件 - http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.9/docs/reference.html - 我想我破解它,當我發現這並沒有爲右鍵但是,即使添加事件偵聽器我自己加了一個,仍然沒有運氣。我在257行添加了這個內容:

google.maps.event.addDomListener(this.eventDiv_, "rightclick", function(e) { 
    if (me.marker_.getClickable()) { 
     google.maps.event.trigger(me.marker_, "rightclick", e); 
     cAbortEvent(e); 
    } 
}) 

有沒有人有類似的問題或找到更好的解決方法?

在此先感謝。

+1

什麼是您handleRightClick功能嗎? – geocodezip

+0

此刻?它只是顯示一個警報。只是試圖證明其工作 – SeanCAtkinson

回答

2

比方說,你有你的地圖對象,這就是所謂辦事處一覽(你作爲一個新的google.maps.Map製造)

這將添加一個標記在地圖上的中心:

var newmarker=new google.maps.Marker({map:globalmap, position: globalmap.getCenter()}); 

這將聽標記點擊右鍵;

google.maps.event.addListener(newmarker, 'rightclick', function(mouseEvent) { alert('Right click triggered'); }); 

編輯:關於MarkerWithLabel插件,我可以看到,它是從google.maps.OverlayView延伸,並通過在對象的marker_屬性的標記。這意味着你仍然可以有自己的方式做(從示例複製):

var marker1 = new MarkerWithLabel({ 
    position: homeLatLng, 
    draggable: true, 
    raiseOnDrag: true, 
    map: map, 
    labelContent: "$425K", 
    labelAnchor: new google.maps.Point(22, 0), 
    labelClass: "labels", // the CSS class for the label 
    labelStyle: {opacity: 0.75} 
}); 

然後添加右鍵點擊行爲

google.maps.event.addListener(marker1.marker_, 'rightclick', function(mouseEvent) { alert('Right click triggered'); }); 
+1

試圖剝離你的建議代碼。在標準標記上點擊右鍵。某些東西一定不能在我使用的markerWithLabel插件中工作。 – SeanCAtkinson

2

你的最後一次嘗試:

google.maps.event.addDomListener(this.eventDiv_, "rightclick",function(){/**/}); 

。 ..will不行,因爲沒有rightclick -DOMMouseEvent。

您必須遵守click -event的eventDiv_和檢查活動的button - 屬性設置爲2(當它已經檢測到右擊)

+0

不幸的是點擊事件沒有被激發,當我右鍵單擊。谷歌地圖竊取他們.. – SeanCAtkinson

+1

使用鼠標,而不是點擊 –

+0

認爲你剛纔破解了我所有的問題谷歌地圖:) – SeanCAtkinson

1

的右擊事件工作在一個google.maps.Marker對我來說:

google.maps.event.addListener(marker, 'rightclick', function() { 
    infowindow.setContent("<div style='width:100px'>rightclick</div>"); 
    infowindow.open(map,marker); 
    }); 

working example

+1

是的,但不是當我右鍵單擊標籤本身。 –