Leaflet: لم يتم تشغيل حدث .on ("popupopen") على العلامات

تم إنشاؤها على ٢٢ سبتمبر ٢٠١٤  ·  3تعليقات  ·  مصدر: Leaflet/Leaflet

أهلا،

سياق الكلام
لقد كتبت العديد من توجيهات AngularJS للنشرة. واحدة للخريطة ، واحدة للطبقة ، وواحدة للعلامات وواحدة للنوافذ المنبثقة.

التوجيه الزاوي للنوافذ المنبثقة ، يستمع إلى علامة ليتم ربطها.

    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });

متوقع
يجب إطلاق جميع الأحداث.

نتيجة

popupevent ؟ تم طرد الآخرين.


نشرة: 0،7،2
نظام التشغيل: Windows 7
المتصفح: جوجل كروم 37 وفايرفوكس 32

التعليق الأكثر فائدة

ها هي المشكلة ، عندما تفعل هذا

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
marker.bindPopup("my content");

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

الحل النهائي.

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );

var popupOptions = {};
// you have to append the marker on the creation of the popup
// so that the popup element will have the marker source.
var popup = L.popup(popupOptions, marker );

// and this will work !
marker
    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });

ال 3 كومينتر

بعد بعض الاختبارات ، ظهرت المشكلة من مكتبتنا المخصصة المنبثقة.

تعليق avez vous fait؟

2014-09-22 11:39 بتوقيت جرينتش + 02: 00 بيير بارون [email protected] :

مغلق # 2907 https://github.com/Leaflet/Leaflet/issues/2907.

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/Leaflet/Leaflet/issues/2907#event -168346883.

ها هي المشكلة ، عندما تفعل هذا

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
marker.bindPopup("my content");

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

الحل النهائي.

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );

var popupOptions = {};
// you have to append the marker on the creation of the popup
// so that the popup element will have the marker source.
var popup = L.popup(popupOptions, marker );

// and this will work !
marker
    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات