كيفية التعرف على علامة النشرة أثناء حدث "النوافذ المنبثقة"؟

StackOverflow https://stackoverflow.com//questions/12701240

سؤال

عند النقر فوق علامة، أحتاج إلى تنفيذ بعض التعليمات البرمجية التي تعثر على ملف id المقابلة للعلامة التي يتم النقر عليها، واسترداد البيانات من واجهة برمجة تطبيقات الواجهة الخلفية، ثم إضافة البيانات المستردة حديثًا إلى الملف content من النافذة المنبثقة التي سيتم فتحها.

الطريقة الوحيدة التي يمكنك من خلالها الاستماع إلى حدث النقر على العلامة هي

map.on('popupopen', function(e){
    // How to retrieve marker?
    // eg: Assign an id on creation, retrieve it now during popupopen
};)

كيف يمكنني معرفة أي علامة هذه؟هل من الممكن إضافة id سمة لكل علامة، ثم استرداد هذا id أثناء ال popupopen حدث؟

هل كانت مفيدة؟

المحلول

يحتوي كائن الحدث على سمة "منبثقة" لها سمة خاصة تسمى "_source" وهي الكائن الذي ترتبط به النافذة المنبثقة (على سبيل المثال.العلامة).نظرًا لأنه من المفترض أن يكون _source خاصًا، فإن هذا لا يبدو بالطريقة الصحيحة ولكني لست متأكدًا من كيفية القيام بذلك.

map.on('popupopen', function(e) {
  var marker = e.popup._source;
});

نصائح أخرى

يمكن أن تحتوي كائنات Javascript على أي خصائص محددة عليها.قم بتعيين popup.marker على العلامة المشار إليها عند إنشاء النافذة المنبثقة.ثم يمكنك الوصول إليه لاحقًا في معالج الأحداث.

للحصول على معرف العلامة، يمكنك استخدام هذا الرمز:

map.on('popupopen', function(e) {
  var marker = e.popup._source.feature.properties.markerid;
});

الإجابات الأخرى لم تنجح، ولكن هذا يعمل:

map.on('popupopen', function(e) { alert(e.popup._source._popup._content); });

أعتقد أن هذه المكتبة متقلبة للغاية ... ولست متأكدًا من سبب تعقيد نقل مثل هذه المعلومات في المقام الأول.<تتجاهل>

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top