我在使图层组中的折线不可单击时遇到问题... 正如您在下面的代码中看到的,我使用 leaflet 的内置函数来遍历图层组(route.eachLayer),并尝试添加样式“clickable: false”,但这似乎没有做任何事情......
//route = layergroup with all polylines
function disableclicking(){
route.eachLayer(function(layer){
layer.setStyle({clickable: false});
});
}
当我尝试使用这段代码时,它似乎没有改变任何东西(尽管它确实进入了循环) 或者至少,它不会改变我想要的......
我想要的是折线的类“.leaflet-clickable”被删除......这似乎不会发生。当您将样式更改为不可点击时,此类是否会发生变化,或者我的循环有问题吗?
最佳答案
我有类似的需求,由于接受的答案与问题无关,我将发布我想出的解决方案(以防其他人从谷歌到达这里)。
function setClickable(target, value) {
if(value && !target.options.clickable) {
target.options.clickable = true;
L.Path.prototype._initEvents.call(target);
target._path.removeAttribute('pointer-events');
} else if(!value && target.options.clickable) {
target.options.clickable = false;
// undoing actions done in L.Path.prototype._initEvents
L.DomUtil.removeClass(target._path, 'leaflet-clickable');
L.DomEvent.off(target._container, 'click', target._onMouseClick);
['dblclick', 'mousedown', 'mouseover', 'mouseout', 'mousemove', 'contextmenu'].forEach(function(evt) {
L.DomEvent.off(target._container, evt, target._fireMouseEvent);
});
target._path.setAttribute('pointer-events', target.options.pointerEvents || 'none');
}
}
setClickable(myLayer, false);
关于javascript - 传单问题 : making layergroup of polylines not clickable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11972816/