我点击地图设置了一个标记.我使用MarkerWithLabel.
我使用拖动标记.
如果我拖动标记它可以正常工作.但是如果我拖动一个标签,它就可以在地图上使用click事件.
@H_502_10@google.maps.event.addListener(map,'click',function(event) { addMarker(event.latLng) }); function addMarker(latLng) { var marker = new MarkerWithLabel({ position: latLng,map: map,draggable: true,labelContent: "example",labelAnchor: new google.maps.Point(30,0),labelClass: "labels",// the CSS class for the label labelStyle: {opacity: 0.75} }); google.maps.event.addListener(marker,'dragend',function(e) { alert(2); }) }解决方法
除非您有其他解决方案,否则您可以尝试这样的事情(
Example):
@H_502_10@var map,dragended;
// ...
google.maps.event.addListener(map,function(event) {
if(!dragended) {
addMarker(event.latLng);
}
dragended = false;
});
google.maps.event.addListener(marker,function(e) {
var target = e.target || e.srcElement;
if(target && target.className == 'labels') {
dragended = true;
}
alert(2);
});
开始拖动时会触发click事件(Check this).这是一个使用全局变量的肮脏黑客,但如果没有其他解决方案,它就可以工作.