正如我所看到的,标记不包含更改可点击属性(true/false)的方法。在创建所有标记后,我需要多次更改此属性(我知道我可以基于旧标记创建一个新标记,但这确实是开销,我想避免它)这次我尝试了此方法处理我的自定义按钮上的 onclick 事件:
function makeMarkersClickable() {
for (var id in myMarkers) {
var marker = myMarkers[id];
marker.options.clickable = true;
marker.clickable = true;
}
}
显然这不起作用。似乎应该有一种方法来更新整个 map 或类似的方法来解决这个问题。
最佳答案
此问题有两种解决方案:
- “我知道我可以根据旧标记创建一个新标记,但这确实是开销,我想避免它”:您会这样做。这是更好的解决方案,您不应该过早地优化它。不可设置的选项之所以如此是有原因的。
- 始终将
clickable
设置为true
并 add and remove事件监听器。
关于javascript - 如何使用 Leaflet 中的自定义控件切换可点击标记属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26845826/