লিফলেট এবং জিওজেএসএন সহ ইভেন্টগুলি ক্লিক করুন


18

আমি কীভাবে কোনও জিওজেএসএনে একটি ক্লিক ইভেন্ট সংযুক্ত করব যা ক্লিক করার পরে একটি অ্যাজাক্স ফাংশন সম্পাদন করে। আমি onEachFeatureজিওজেএসএন লোড হওয়ার পরে এটি কার্যকর করেছিলাম, যখন ক্লিক করা হয় না, এভাবে একটি টন এজ্যাক্স কল কার্যকর করা হয়!

উত্তর:


22

আপনি সঠিক পথে ছিলেন 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

থমাস জি's77 এর সংস্করণের চেয়ে সামান্য কম কোড দিয়ে আপনি এটি করতে পারেন:

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);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.