右键点击标记-谷歌地图V3
Right Click on marker - Google Maps 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);
}
})
有人遇到过类似的问题或找到了更好的解决方案吗?
提前谢谢。
假设您有一个地图对象,它被称为globalmap(您作为一个新的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'); });
EDIT:关于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'); });
您的最后一次尝试:
google.maps.event.addDomListener(this.eventDiv_, "rightclick",function(){/**/});
将不起作用,因为没有rightclick
-DOMMouseEvent。
您必须观察eventDiv_
的click
-事件,并检查该事件的button
-属性是否设置为2
(当它进行右键单击时,已检测到)
右键单击事件在google.maps.Marker:
google.maps.event.addListener(marker, 'rightclick', function() {
infowindow.setContent("<div style='width:100px'>rightclick</div>");
infowindow.open(map,marker);
});
工作示例
- 谷歌地图v3标记没有显示ie8和9
- 谷歌地图v3:当函数'失败'呼叫
- 谷歌地图V3
- 谷歌地图V3-我无法调和关闭
- 在谷歌地图V3上选择多边形
- 谷歌地图v3侦听器(单击)-更改URL
- 谷歌地图V3在安卓应用程序中的实现
- 对谷歌地图v3 API getDetails()函数感到困惑
- 谷歌地图 v3 缩放特定位置
- 右键点击标记-谷歌地图V3
- 如何重新启用禁用的谷歌地图v3拖放、缩放等
- 交互式信息窗口谷歌地图V3
- 未捕获的类型错误:无法读取属性'长度'未定义的谷歌地图V3
- 谷歌地图v3
- 为谷歌地图v3
- 谷歌地图v3-将标记替换为infoWindow显示
- 如何在谷歌地图V3上居中和缩放多个标记
- 多站方向-谷歌地图v3
- 如何在谷歌地图v3中创建在所有缩放级别具有相同半径的圆
- 尝试在谷歌地图V3中绘制超过10个标记,不使用地理编码