Làm cách nào để tôi đính kèm một sự kiện nhấp chuột vào GeoJSON để thực thi chức năng Ajax khi được nhấp. Tôi đã xem xét onEachFeature
nhưng nó thực thi khi GeoJSON được tải, không phải khi nhấp vào, do đó thực hiện một tấn các cuộc gọi ajax!
Làm cách nào để tôi đính kèm một sự kiện nhấp chuột vào GeoJSON để thực thi chức năng Ajax khi được nhấp. Tôi đã xem xét onEachFeature
nhưng nó thực thi khi GeoJSON được tải, không phải khi nhấp vào, do đó thực hiện một tấn các cuộc gọi ajax!
Câu trả lời:
Bạn đã đi đúng hướng với onEachFeature
.
Chỉ là bạn phải liên kết nhấp chuột vào từng yếu tố.
Xem bên dưới (đã thử nghiệm)
function whenClicked(e) {
// e = event
console.log(e);
// You can make your ajax call declaration here
//$.ajax(...
}
function onEachFeature(feature, layer) {
//bind click
layer.on({
click: whenClicked
});
}
geojson = L.geoJson(your_data, {
style: style,
onEachFeature: onEachFeature
}).addTo(map);
Bạn có thể làm điều đó với mã ít hơn một chút so với phiên bản của ThomasG77:
function onEachFeature(feature, layer) {
//bind click
layer.on('click', function (e) {
// e = event
console.log(e);
// You can make your ajax call declaration here
//$.ajax(...
});
}
geojson = L.geoJson(your_data, {
style: style,
onEachFeature: onEachFeature
}).addTo(map);
chỉ là một cách khác như chức năng nội tuyến
geojson = L.geoJson(your_data, {
style: style,
onEachFeature: function onEachFeature(feature, layer) {
layer.on('mouseover', function (e) {
// e = event
console.log(e);
// You can make your ajax call declaration here
//$.ajax(...
});}).addTo(map);