【问题标题】:How do you use the .off() event method in leaflet.js?如何使用leaflet.js 中的.off() 事件方法?
【发布时间】:2012-04-25 22:41:44
【问题描述】:

我正在尝试使用 Leaflet.js 构建地图应用程序,但我不知道如何使用 .off 方法。该文档没有任何示例,我似乎在网上其他任何地方都找不到任何东西。我已将问题提炼成更简单的代码块,这样我的问题就可以更清楚了。

基本上我已经设置好了,当你点击“启用点击”链接时,它会添加一个事件监听器,每次你点击它时都会在地图上添加一个标记。当您单击“禁用单击”时,我想删除该事件侦听器。

Here is a link to the demo

这是我现在的代码。

$(document).ready(function(){

var map, cloudmade, sanAntonio, polygonPoints  


 map = new L.Map('map');
 cloudmade = new L.TileLayer('http://{s}.tile.cloudmade.com/d4334cd6077140e3b92ccfae2b363070/997/256/{z}/{x}/{y}.png', {
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>',
    maxZoom: 18
});


 sanAntonio = new L.LatLng(29.4238889, -98.4933333); // geographical point (longitude and latitude)


 map.setView(sanAntonio, 13).addLayer(cloudmade);

//everything above sets up the map



function enableClick(){
  map.on('click', function(e) {    
    var marker = new L.Marker(e.latlng, {draggable:true});
    map.addLayer(marker);
  });//closes the click function

  this.disableClick = function(){
    map.off('click');
  }

}



//when 
$('#enable_click').click(function(){
  var enable_click = new enableClick()

  $('#disable_click').click(function(){
    enable_click.disableClick;
  });

});




});//closes the document ready function

我已经尝试了很多不同的东西,所以整个 'this.disableClick' 只是我尝试过的最新奇怪的东西。有人有线索吗?

【问题讨论】:

    标签: javascript geocoding leaflet


    【解决方案1】:

    您需要通过引用将函数传递给onoff

    function doStuff() { ... }
    
    map.on('click', doStuff);
    ...
    map.off('click', doStuff);
    

    【讨论】:

    • 使用off的时候还需要这个功能吗?
    • 是的。这可能是因为您可以将多个处理程序(函数)绑定到单个事件。见leafletjs.com/reference.html#events
    • 嗨,我试过这个,但没有运气,this.map.off('click',function(evt){ console.log("click disabled"); });跨度>
    • 没有必要了。现在 .off("click") 将删除所有 'click' 事件的侦听器。 (版本 1.3.0 -> leafletjs.com/reference-1.3.0.html)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多