Jak dołączyć zdarzenie click do geoJSON, który następnie wykonuje funkcję Ajax po kliknięciu. onEachFeature
Zajrzałem do, ale wykonuje się, gdy geoJSON jest załadowany, a nie po kliknięciu, w ten sposób wykonując mnóstwo wywołań ajax!
Jak dołączyć zdarzenie click do geoJSON, który następnie wykonuje funkcję Ajax po kliknięciu. onEachFeature
Zajrzałem do, ale wykonuje się, gdy geoJSON jest załadowany, a nie po kliknięciu, w ten sposób wykonując mnóstwo wywołań ajax!
Odpowiedzi:
Byłeś z właściwą drogą onEachFeature
.
Musisz tylko powiązać zdarzenie kliknięciem każdego elementu.
Zobacz poniżej (przetestowane)
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);
Możesz to zrobić z nieco mniejszym kodem niż wersja 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);
po prostu inny sposób jako funkcja wbudowana
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);