Sto provando a creare un'applicazione mappa utilizzando leaflet.js e non riesco a capire come utilizzare il metodo .off. La documentazione non ha esempi e non riesco a trovare nulla da nessun'altra parte online. Ho distillato il problema in una porzione più semplice di codice, quindi la mia domanda potrebbe essere più chiara.Come si usa il metodo di evento .off() in leaflet.js?
Fondamentalmente l'ho impostato in modo tale che quando si fa clic sul collegamento "attiva clic" aggiungerà un listener di eventi che aggiunge un marcatore alla mappa ogni volta che si fa clic su di esso. Voglio rimuovere quel listener di eventi quando fai clic su "Disattiva clic".
Ecco il codice che ho adesso.
$(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
Ho già provato un sacco di cose diverse modo che il tutto 'this.disableClick' è solo l'ultima cosa strana che ho provato. Qualcuno ha un indizio?
È la funzione ancora necessario quando si utilizza off? – fuzz
Sì. Ciò è probabilmente dovuto al fatto che è possibile associare più gestori (funzioni) a un singolo evento. Vedi http://leafletjs.com/reference.html#events – nothingisnecessary
ciao, ho provato questo, ma senza fortuna, this.map.off ('click', function (evt) { console.log ("fare clic su disabilitato "); }); – AhammadaliPK