Come si allega un evento click a un geoJSON che esegue una funzione Ajax quando si fa clic. Ho esaminato onEachFeature
ma ciò viene eseguito quando viene caricato geoJSON, non quando viene cliccato, quindi eseguendo una tonnellata di chiamate ajax!
Come si allega un evento click a un geoJSON che esegue una funzione Ajax quando si fa clic. Ho esaminato onEachFeature
ma ciò viene eseguito quando viene caricato geoJSON, non quando viene cliccato, quindi eseguendo una tonnellata di chiamate ajax!
Risposte:
Eri sulla buona strada con onEachFeature
.
È solo necessario associare il clic dell'evento su ciascun elemento.
Vedi sotto (testato)
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);
Puoi farlo con un codice leggermente inferiore rispetto alla versione di 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);
solo un altro modo come funzione in linea
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);