USC और geoJSON के साथ ईवेंट पर क्लिक करें


19

मैं जियोजोन पर एक क्लिक ईवेंट कैसे संलग्न करूं जो क्लिक करने पर एक अजाक्स फ़ंक्शन को निष्पादित करता है। मैंने देखा onEachFeatureलेकिन जब जियोज़न्स लोड किया जाता है, तब क्लिक नहीं किया जाता है, इस प्रकार निष्पादित होता है, इस प्रकार एक टन अजाक्स कॉल को निष्पादित करता है!

जवाबों:


23

आप के साथ सही रास्ते पर थे onEachFeature

बस आपको प्रत्येक तत्व पर ईवेंट क्लिक को बांधना है।

नीचे देखें (परीक्षण)

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

आप इसे थॉमसजी 77 के संस्करण की तुलना में थोड़े कम कोड के साथ कर सकते हैं:

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

इनलाइन फ़ंक्शन के रूप में सिर्फ एक और तरीका

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);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.