我有一张传单地图,其中显示了大量的标记,以及我在地图上有时添加的一个简单按钮控件。当用户点击它时,我想将其从地图中删除。 但是当我点击它时,easybutton.js总会出现错误:'TypeError:this._map为null'。这个错误冻结了我在IE上的页面...
这是我的代码,当我添加我的控件和事件onclick它我想删除它。
backButton = L.easyButton('<span class="backButton">↩</span>', function (btn, map) {
//evenement on click button
map.removeControl(backButton);
},
{ position: 'bottomright' });
map.addControl(backButton);
我在map.removeControl()中使用“this”和“btn”而不是backButon进行了测试但是同样的错误。我还测试了backButton.removeFrom(map)..
谢谢
答案 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()