Як я можу приєднати подію клацання до geoJSON, який виконує функцію Ajax при натисканні на неї. Я переглянув, onEachFeature
але це виконується при завантаженні geoJSON, а не при натисканні, таким чином виконуючи тонну викликів Ajax!
Як я можу приєднати подію клацання до geoJSON, який виконує функцію Ajax при натисканні на неї. Я переглянув, onEachFeature
але це виконується при завантаженні geoJSON, а не при натисканні, таким чином виконуючи тонну викликів Ajax!
Відповіді:
Ви були в правильному шляху з onEachFeature
.
Просто потрібно зв’язати натиснення події на кожен елемент.
Дивіться нижче (перевірено)
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);
Ви можете зробити це з трохи меншим кодом, ніж версія 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);
просто інший спосіб, як вбудована функція
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);