以下代码在启用和禁用标记拖动的行上收到错误(“无法获取未定义或空引用的属性‘禁用’”)。标记很好地显示在地图上,并且可以如创建线所示进行拖动。放置警报代替启用线会产生一个合适的对象,所以我相信标记已定义。我需要做些什么来启用 IHandler 接口?还是我错过了其他东西?
var marker = L.marker(L.latLng(lat,lon), {icon:myIcon, draggable:'true'})
.bindLabel(name, {noHide: true,direction: 'right'});
marker._myId = name;
if (mode === 0) {
marker.dragging.enable();
} else {
marker.dragging.disable();
}
Run Code Online (Sandbox Code Playgroud)
我今天遇到了类似的问题(可能是同一个),这是由于传单中的错误(请参阅传单问题 #2578),其中更改标记的图标会使该标记上设置的任何拖动处理无效。这会使任何调用marker.dragging.disable()失败。
在撰写本文时,此修复程序尚未成为传单大师。如果可能,解决方法是在更新可拖动状态后更改图标。
marker.dragging.disable();
marker.setIcon(marker_icon);
Run Code Online (Sandbox Code Playgroud)