javascript – MarkerWithLabel – 拖动事件就像点击事件一样

我点击地图设置了一个标记.我使用MarkerWithLabel.

我使用拖动标记.

如果我拖动标记它可以正常工作.但是如果我拖动一个标签,它就可以在地图上使用click事件.

如何使用标签并在没有点击事件的情况下拖动标签?

在我的例子中 – 当我拖动标记时,JS会创建新标记.

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);
    })
}

JSFIDDLE

解决方法

除非您有其他解决方案,否则您可以尝试这样的事情( 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).这是一个使用全局变量的肮脏黑客,但如果没有其他解决方案,它就可以工作.

相关文章

kindeditor4.x代码高亮功能默认使用的是prettify插件,prett...
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小