Estoy intentando construir una aplicación de mapa usando leaflet.js y no puedo encontrar la manera de usar el método .off. La documentación no tiene ningún ejemplo y parece que no puedo encontrar nada en otro lugar en línea. He destilado el problema en un trozo de código más simple, por lo que mi pregunta podría ser más clara.¿Cómo se usa el método de evento .off() en leaflet.js?
Básicamente lo tengo configurado para que cuando haga clic en el enlace "habilitar clic" se agregará un oyente de eventos que agrega un marcador al mapa cada vez que haga clic en él. Quiero eliminar ese detector de eventos cuando haga clic en "desactivar clic".
Aquí está el código que tengo ahora.
$(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 © <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
Ya he probado un montón de cosas diferentes por lo que todo el asunto 'this.disableClick' es la última cosa extraña que he probado. Alguien tiene una pista?
es la función sigue siendo necesario cuando se utiliza fuera? – fuzz
Sí. Esto es probablemente porque puede vincular múltiples manejadores (funciones) a un solo evento. Ver http://leafletjs.com/reference.html#events – nothingisnecessary
hola, he intentado esto, pero no tuve suerte, this.map.off ('click', function (evt) { console.log ("click deshabilitado "); }); – AhammadaliPK