Comment utilisez-vous la .off() méthode événements dans leaflet.js?
Je suis en train de construire une carte de l'application à l'aide de leaflet.js et je ne peux pas comprendre comment utiliser le .arrêt de la méthode. La documentation n'est pas des exemples et je n'arrive pas à trouver quelque chose de n'importe où ailleurs en ligne. J'ai distillé le problème dans un cadre plus simple morceau de code donc ma question pourrait être plus clair.
Fondamentalement, je l'ai mis en place de sorte que lorsque vous cliquez sur "activer cliquez sur" lien il va ajouter un écouteur d'événement qui ajoute un marqueur sur la carte chaque fois que vous cliquez dessus. Je veux enlever ce écouteur d'événement lorsque vous cliquez sur "désactiver le clic".
Voici le code que j'ai maintenant.
$(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
J'ai déjà essayé un tas de choses différentes, de sorte que le tout " ce.disableClick', c'est la dernière chose étrange, j'ai essayé. Quelqu'un a une idée?
OriginalL'auteur Spencer Cooley | 2012-04-25
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour passer de la fonction de
on
etoff
par la référence:Oui. C'est probablement parce que vous pouvez lier plusieurs gestionnaires (fonctions) pour un événement unique. Voir leafletjs.com/reference.html#events
salut ,j'ai essayé cela , mais pas de chance, cette.carte.off('click',function(evt){ console.log("cliquez sur désactivé"); });
Il n'est pas plus nécessaire. Maintenant .off("clic") va permettre de supprimer tous les auditeurs de "clic" de l'événement. (version 1.3.0 -> leafletjs.com/reference-1.3.0.html)
OriginalL'auteur Mourner