2016-06-01 58 views
0

我有一个小册子地图,其中显示了大量的标记以及我在地图上添加的easybutton控件。当用户点击它时,我想从地图中删除它。 但是当我点击它时,easybutton.js总是有一个错误:'TypeError:this._map is null'。这个错误frez我的网页在IE上...小册子:从小册子地图中删除EasyButton控件

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

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

       //evenement on click button 


       map.removeControl(backButton); 



      }, 
      { position: 'bottomright' }); 

      map.addControl(backButton); 

我 “这个” 和 “BTN” 代替backButon在map.removeControl(),但相同的错误检测。我也backButton.removeFrom(图)测试..

感谢

回答

3

虽然事件处理函数里面,该按钮可acessed为this,所以它的那样简单map.removeControl(this);this.remove();

但easyButton的代码试图在点击按钮后立即访问地图,所以更好的方法是等待一帧来移除它。见this working example

0

我相信是更好的你只是禁用按钮或隐藏,怎么一回事,因为如果你删除的按钮寄托都该按钮在地图上做的都将被删除,所以试试这个:D

backButton.disable()?

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

或只设置一个ID在您的按钮,并使用此:$("#MyID").hide()

+0

谢谢,我会保持联系,今晚我只能测试它! :) – Furtiro

+0

@Furtiro好的;) – HudsonPH

+0

IvanSanchez的答案完美的工作,禁用did'nt工作!无论如何感谢兄弟 – Furtiro