Nhấp vào Sự kiện với Tờ rơi và GeoJSON


18

Làm cách nào để tôi đính kèm một sự kiện nhấp chuột vào GeoJSON để thực thi chức năng Ajax khi được nhấp. Tôi đã xem xét onEachFeaturenhưng nó thực thi khi GeoJSON được tải, không phải khi nhấp vào, do đó thực hiện một tấn các cuộc gọi ajax!

Câu trả lời:


22

Bạn đã đi đúng hướng với onEachFeature.

Chỉ là bạn phải liên kết nhấp chuột vào từng yếu tố.

Xem bên dưới (đã thử nghiệm)

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

Bạn có thể làm điều đó với mã ít hơn một chút so với phiên bản của 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);

3

chỉ là một cách khác như chức năng nội tuyến

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);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.