Leaflet:从传单地图中删除EasyButton Control

时间:2016-06-01 07:16:23

标签: javascript leaflet

我有一张传单地图,其中显示了大量的标记,以及我在地图上有时添加的一个简单按钮控件。当用户点击它时,我想将其从地图中删除。 但是当我点击它时,easybutton.js总会出现错误:'TypeError:this._map为null'。这个错误冻结了我在IE上的页面...

这是我的代码,当我添加我的控件和事件onclick它我想删除它。

 backButton = L.easyButton('<span class="backButton">&larrhk;</span>', function (btn, map) {

                //evenement on click button


                map.removeControl(backButton);



            },
            { position: 'bottomright' });

            map.addControl(backButton);

我在map.removeControl()中使用“this”和“btn”而不是backButon进行了测试但是同样的错误。我还测试了backButton.removeFrom(map)..

谢谢

2 个答案:

答案 0 :(得分:4)

在事件处理函数内部,该按钮可以被this所取代,因此它就像map.removeControl(this);this.remove();一样简单。

然而,easyButton的代码尝试在单击按钮后立即访问地图,因此更好的方法是等待一帧删除它。请参阅this working example

答案 1 :(得分:0)

我相信更好你只是禁用你的按钮或隐藏,如果你删除按钮按下按钮,地图上的按钮将被删除,所以试试这个:D

backButton.disable()?

最后一个例子:http://danielmontague.com/projects/easyButton.js/v1/examples/

或者只需在按钮中设置ID并使用:$("#MyID").hide()