Leaflet: معالج النقر البسيط لا يعمل مع طبقة Geojson على Leaflet 1.0.0-rc.3

تم إنشاؤها على ٢٦ أغسطس ٢٠١٦  ·  4تعليقات  ·  مصدر: Leaflet/Leaflet

أفعل شيئًا مشابهًا لـ http://jsfiddle.net/tator/em9cLfk4/4/

لا يرتبط هذا بنقر الطبقة الذي تم تكوين فقاعات له لتعيين معالج النقر على أي حال. يتعلق الأمر ببساطة بنقر الطبقة الذي لا يتم تشغيله برمز يعمل بشكل صحيح مع 0.7.7.

لقد قمت بتخفيض الكود الخاص بي إلى طبقة البلاط الأساسية فقط + طبقة تراكب واحدة للتأكد من عدم وجود أي مشكلات في ترتيب الطبقة.

لا يزال map.on ("انقر") يعمل بشكل صحيح ولكن ليس لطبقة GeoJson.

function onEachFeatureHandler(feature, layer){
            layer.on('click', function(e){
                     alert("click");
           });
}

overlay = L.geoJson(GeoJSON, {
       onEachFeature: onEachFeatureHandler
});

لقد جربت أيضًا طريقتين مختلفتين لعمل layer.on ("انقر") ، إما النقر كسلسلة أو إضافة {"click": handlerFuncName}. لا تحدث فرقا كما هو متوقع.

حاولت إضافة طبقة التجانب الأساسية قبل / بعد التراكب ، ولم يتغير شيء. لقد قمت أيضًا بإزالة معالج النقرات على الخريطة لتجنب تعارض الحدث. لذلك انتهى بي الأمر بخريطة تحتوي على بلاط + تراكب فقط ، ومعالج حدث بنقرة واحدة ، ولكن مع ذلك ، لن يتم إطلاق أي شيء. يشير مؤشر الماوس إلى أن الطبقة غير قابلة للنقر على الإطلاق.

لقد قمت أيضًا بتعديل ألوان التراكب للتأكد من إضافته بشكل صحيح إلى كائن الخريطة. إنه فوق طبقة القرميد.

يحدث هذا في أحدث إصدار من Chrome v52 و Safari 9 على جهاز Mac.

بعد تجربة ما يقرب من 4 ساعات في هذا ... أظن أنه قد يكون شيئًا غبيًا في الكود الخاص بي أو أن هناك بعض تغييرات واجهة برمجة التطبيقات التي فاتتني في سجل التغيير. سأكون ممتنًا إذا كان بإمكانك تقديم بعض النصائح حول ما قد أفعله خطأ. سيكون موضع تقدير أي فكرة.

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

mourner بعد بعض التفكير ، أدركت أنني لم أقوم بتحديث css إلى الأحدث. ربما يكون قد ساهم في عدم صحة مستوى zIndex ، أو عدم السماح ببعض حدث النقرات. الآن يبدو أن كل شيء طبيعي بمجرد تحديث css إلى الأحدث. إغلاق القضية.

ال 4 كومينتر

هل يمكنك إعداد حالة اختبار بسيطة على JSFiddle أو Leaflet Playground لإعادة إظهار المشكلة؟

mourner سأحاول ملعبًا مع بعض Geojson البسيط ونرى ما سيحدث. لم يكن لدي رمز معالج النقرات مكسورًا في أمثلة معزولة جدًا. حتى أنني قمت بتصحيح كائن الطبقة في المصحح ... تمت إضافة معالج النقر بالتأكيد. يتم تشغيل حدث النقر في المربع <img> عندما أنقر فوق الطبقات.

لا أستطيع التفكير في أي عوامل أخرى تؤثر على هذا.

لقد جربتهmourner للتو مع rc3 في الملعب ، ولا تزال طبقة geojson الخام تعمل على النحو المنشود ...

mourner بعد بعض التفكير ، أدركت أنني لم أقوم بتحديث css إلى الأحدث. ربما يكون قد ساهم في عدم صحة مستوى zIndex ، أو عدم السماح ببعض حدث النقرات. الآن يبدو أن كل شيء طبيعي بمجرد تحديث css إلى الأحدث. إغلاق القضية.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

CallMarl picture CallMarl  ·  3تعليقات

ssured picture ssured  ·  3تعليقات

gdbd picture gdbd  ·  3تعليقات

onethread picture onethread  ·  3تعليقات

timwis picture timwis  ·  3تعليقات