【问题标题】:Leaflet : Remove EasyButton Control from leaflet map传单:从传单地图中删除 EasyButton 控件
【发布时间】:2016-06-01 07:16:23
【问题描述】:

我有一张传单地图,其中显示了大量的标记,还有一个我有时会在地图上添加的简单按钮控件。当用户单击它时,我想将其从地图中删除。 但是当我点击它时,easybutton.js 总是有一个错误:'TypeError: this._map is 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) ..

谢谢

【问题讨论】:

    标签: javascript leaflet


    【解决方案1】:

    在事件处理函数内部,按钮可以被this访问,所以就像map.removeControl(this);this.remove();一样简单。

    但是,easyButton 的代码会在按钮被点击后尝试访问地图,因此更好的方法是等待一帧将其移除。见this working example

    【讨论】:

      【解决方案2】:

      我相信你最好禁用你的按钮或隐藏,因为如果你删除按钮,地图上按钮所做的一切都会被删除,所以试试这个:D

      backButton.disable()?

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

      或者只是在你的按钮中设置一个 id 并使用它:$("#MyID").hide()

      【讨论】:

      • 谢谢,我会和你联系,我今晚只能测试! :)
      • IvanSanchez 的答案完美运行,禁用无效!无论如何,谢谢老兄
      猜你喜欢
      • 1970-01-01
      • 2020-04-13
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      相关资源
      最近更新 更多