Tôi đang cố gắng xây dựng một ứng dụng bản đồ bằng cách sử dụng leaflet.js và tôi không thể tìm ra cách sử dụng phương thức .off. Tài liệu này không có bất kỳ ví dụ nào và tôi dường như không thể tìm thấy bất cứ điều gì ở bất kỳ nơi nào khác trực tuyến. Tôi đã chắt lọc vấn đề thành một đoạn mã đơn giản hơn để câu hỏi của tôi có thể rõ ràng hơn.Bạn sử dụng phương thức sự kiện .off() trong leaflet.js như thế nào?
Về cơ bản tôi đã thiết lập để khi bạn nhấp vào liên kết 'bật nhấp chuột', nó sẽ thêm trình xử lý sự kiện để thêm điểm đánh dấu vào bản đồ mỗi khi bạn nhấp vào nó. Tôi muốn xóa trình xử lý sự kiện đó khi bạn nhấp vào 'tắt nhấp'.
Đây là mã tôi hiện có.
$(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
Tôi đã thử nhiều thứ khác nhau nên toàn bộ điều 'this.disableClick' này chỉ là điều kỳ lạ mới nhất mà tôi đã thử. Bất cứ ai cũng có một đầu mối?
là chức năng vẫn còn cần thiết khi sử dụng không? – fuzz
Có. Điều này có lẽ là do bạn có thể liên kết nhiều trình xử lý (hàm) với một sự kiện duy nhất. Xem http://leafletjs.com/reference.html#events – nothingisnecessary
hi, tôi đã thử điều này, nhưng không có may mắn, this.map.off ('click', chức năng (evt) { console.log ("bấm vô hiệu hóa "); }); – AhammadaliPK