Como anexar um evento click a um geoJSON que, em seguida, executa uma função Ajax quando clicado. Eu examinei, onEachFeature
mas ele é executado quando o geoJSON é carregado, não quando clicado, executando assim uma tonelada de chamadas ajax!
Como anexar um evento click a um geoJSON que, em seguida, executa uma função Ajax quando clicado. Eu examinei, onEachFeature
mas ele é executado quando o geoJSON é carregado, não quando clicado, executando assim uma tonelada de chamadas ajax!
Respostas:
Você estava no caminho certo com onEachFeature
.
É só que você precisa vincular o clique do evento em cada elemento.
Veja abaixo (testado)
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);
Você pode fazer isso com um pouco menos de código que a versão do 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);
apenas outra maneira como função embutida
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);