我正在尝试使用 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 © <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”只是我尝试过的最新奇怪的东西。有人有线索吗?