繁体   English   中英

使用Leaflet / MarkerCluster / Label,如何在添加标记时阻止“ onclick”触发?

[英]Using Leaflet/MarkerCluster/Label, how do I prevent the 'onclick' from firing when adding a marker?

我有以下代码用于向基于Leaflet的地图添加标记:

// In function Init()
markers = L.markerClusterGroup(); // markers is Global

// In function addMarker()
var marker = L.marker(L.latLng(lat,lon), {icon: myIcon})
    .bindLabel(name, {noHide: true,direction: 'right'});
marker._myId = name;

marker.on('click',alert(marker._myId));
markers.addLayer(marker);
map.addLayer(markers);

没有注册“点击”事件,一切都会正常进行,并且符合预期。 当我添加用于注册事件的代码行时,它会在添加标记时触发,但在单击图标时不会触发。

更改marker.on函数可以解决此问题。 我不知道为什么您需要中介功能,但是它起作用了。

代替这个:

marker.on('click',alert(marker._myId));

做这个:

marker.on('click',onMarkerClick);

和这个:

function onMarkerClick(e) {
    alert(e.target._myId);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM