Как вы используете метод события.off ()в leaflet.js?

Я пытаюсь создать картографическое приложение с помощью leaflet.js и не могу понять, как использовать метод.off. В документации нет примеров, и я не могу найти что-либо еще в Интернете. Я перегнал проблему в более простой фрагмент кода, чтобы мой вопрос мог быть более ясным.

По сути, я настроил его так, что когда вы щелкаете ссылку «включить щелчок», он добавляет прослушиватель событий, который добавляет маркер на карту каждый раз, когда вы щелкаете по нему. Я хочу удалить этот прослушиватель событий, когда вы нажимаете «отключить щелчок».

Вот ссылка на демо

Вот код, который у меня есть сейчас.

$(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 © OpenStreetMap contributors, CC-BY-SA, Imagery © CloudMade',
    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' — это просто последняя странная штука, которую я пробовал. Кто-нибудь знает?

13
задан Spencer Cooley 25 April 2012 в 22:41
поделиться