Leaflet ve geoJSON ile Etkinlikler'i tıklayın


19

GeoJSON'a bir tıklama olayını nasıl eklerim ki bu da tıklatıldığında bir Ajax işlevi yürütür. İçine baktım onEachFeatureama bu geoJSON yüklendiğinde, tıklandığında değil, böylece bir ton ajax çağrıları yürütme yürütür!

Yanıtlar:


23

İle doğru yoldasın onEachFeature.

Sadece her öğeye olay tıklaması bağlamak zorunda.

Aşağıya bakınız (test edilmiştir)

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);

8

ThomasG77'nin versiyonundan biraz daha az kodla yapabilirsiniz:

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);

3

satır içi işlev olarak başka bir yol

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);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.