我点击地图设置了一个标记.我使用MarkerWithLabel.
我使用拖动标记.
如果我拖动标记它可以正常工作.但是如果我拖动一个标签,它就可以在地图上使用click事件.
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):
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).这是一个使用全局变量的肮脏黑客,但如果没有其他解决方案,它就可以工作.