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

前端之家收集整理的这篇文章主要介绍了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).这是一个使用全局变量的肮脏黑客,但如果没有其他解决方案,它就可以工作.

猜你在找的JavaScript相关文章