Leaflet: Penangan klik sederhana tidak berfungsi untuk lapisan Geojson di Leaflet 1.0.0-rc.3

Dibuat pada 26 Agu 2016  ·  4Komentar  ·  Sumber: Leaflet/Leaflet

Saya melakukan sesuatu yang mirip dengan http://jsfiddle.net/tator/em9cLfk4/4/

Ini tidak terkait dengan klik lapisan yang digelembungkan ke pengendali klik peta. Ini tentang klik lapisan yang tidak terpicu dengan kode yang berfungsi dengan baik untuk 0.7.7.

Saya mengurangi kode saya menjadi hanya lapisan ubin dasar + satu lapisan overlay untuk memastikan tidak ada masalah urutan lapisan zindex.

Map.on("click") masih menyala dengan benar tetapi tidak untuk lapisan GeoJson.

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

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

Saya juga mencoba dua cara berbeda untuk melakukan layer.on("click"), baik klik sebagai string, atau tambahkan {"click": handlerFuncName}. Itu tidak membuat perbedaan seperti yang diharapkan.

Saya mencoba menambahkan lapisan ubin dasar sebelum/sesudah overlay, dan tidak ada yang berubah. Saya juga menghapus pengendali klik di peta untuk menghindari konflik acara. Jadi saya berakhir dengan peta hanya dengan ubin + overlay, dan event handler satu klik, tapi tetap saja, tidak ada yang akan menyala. Kursor mouse menunjukkan bahwa lapisan tidak dapat diklik sama sekali.

Saya juga memodifikasi warna overlay untuk memastikan itu ditambahkan dengan benar ke objek peta. Itu ada di atas tilelayer.

Ini terjadi di Chrome v52 dan Safari 9 terbaru di Mac.

Setelah mencoba hampir 4 jam pada ini...Saya menduga mungkin ada sesuatu yang bodoh dalam kode saya atau ada beberapa perubahan API yang saya lewatkan di changelog. Saya akan menghargai jika Anda dapat menawarkan beberapa tip tentang apa yang mungkin saya lakukan salah. Setiap wawasan akan dihargai.

Komentar yang paling membantu

@mourner Setelah beberapa pemikiran, saya menyadari bahwa saya tidak memperbarui css ke yang terbaru. Ini mungkin berkontribusi pada level zIndex yang tidak benar, atau tidak mengizinkan beberapa acara klik. Sekarang semuanya tampak normal hanya dengan memperbarui css ke terbaru. Menutup masalah.

Semua 4 komentar

Bisakah Anda menyiapkan kasus uji minimal yang tepat di JSFiddle atau Leaflet Playground yang mereproduksi masalah?

@mourner Saya akan mencoba taman bermain dengan beberapa Geojson sederhana dan melihat apa yang terjadi. Saya tidak memiliki kode penangan klik yang rusak dalam contoh yang sangat terisolasi. Saya bahkan melakukan debug ke objek lapisan di debugger...penangan klik pasti ditambahkan. Peristiwa klik dipicu pada ubin <img> ketika saya mengklik lapisan.

Saya tidak bisa memikirkan faktor lain yang mempengaruhi ini.

@mourner baru saja mencobanya dengan rc3 di taman bermain, lapisan geojson mentah masih berfungsi sebagaimana dimaksud...

@mourner Setelah beberapa pemikiran, saya menyadari bahwa saya tidak memperbarui css ke yang terbaru. Ini mungkin berkontribusi pada level zIndex yang tidak benar, atau tidak mengizinkan beberapa acara klik. Sekarang semuanya tampak normal hanya dengan memperbarui css ke terbaru. Menutup masalah.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat