كيفية التعرف على علامة النشرة أثناء حدث "النوافذ المنبثقة"؟
-
12-12-2019 - |
سؤال
عند النقر فوق علامة، أحتاج إلى تنفيذ بعض التعليمات البرمجية التي تعثر على ملف 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); });
أعتقد أن هذه المكتبة متقلبة للغاية ... ولست متأكدًا من سبب تعقيد نقل مثل هذه المعلومات في المقام الأول.<تتجاهل>