问题
我正在使用leaflet draw作为我的应用程序,我的'remove'按钮处于活动状态 . 删除按钮有三个选项:
-
保存
-
取消
-
全部清除
我希望在用户单击“保存”时调用函数 foo()
,但是,如果他们单击“取消”,则需要调用函数 bar()
.
解决方案
我知道这可以通过简单地给它一个ID,并添加一个事件监听器来实现,但它并不像我认为的那样干净 .
理想的解决方案
Leaflet绘制了自己的方法,用于检测按钮何时被按下,但在我看来,它们只能在更高的级别上进行 . 例如:
draw:deletestop这是编辑的类型 . 其中之一:删除当用户完成删除形状(删除模式)并保存时触发 . - 传单文件
这允许我在用户选择了三个选项中的 any 之后调用 foo()
,表明他们已经完成了处理删除按钮交互 .
我无法在文档中找到一种方法,能够在按下的各个按钮上侦听传单绘制触发事件 .
2 回答
取消/禁用功能的处理程序存储为
L.Control.Draw
实例的一部分 . 因此,您可以在实例化L.Control.Draw
对象后立即修改处理程序:处理程序的源代码是here,虽然这很好用,但您必须小心可能会更改处理程序功能的Leaflet.Draw的未来版本 .
您可以使用Leaflet.draw 0.4.14的最新版本