Leaflet: Le gestionnaire de clic simple ne fonctionne pas pour la couche Geojson sur Leaflet 1.0.0-rc.3

Créé le 26 août 2016  ·  4Commentaires  ·  Source: Leaflet/Leaflet

Je fais quelque chose de similaire à http://jsfiddle.net/tator/em9cLfk4/4/

Cependant, cela n'est pas lié au clic sur la couche transmis au gestionnaire de clics de la carte. Il s'agit du clic sur la couche qui ne se déclenche tout simplement pas avec du code qui fonctionne correctement pour 0.7.7.

J'ai réduit mon code à une couche de tuiles de base + une couche de superposition pour m'assurer qu'il n'y a pas de problèmes de zindex dans l'ordre des couches.

Le map.on("click") se déclenche toujours correctement mais pas pour la couche GeoJson.

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

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

J'ai également essayé deux manières différentes de faire le layer.on("click"), soit click en tant que chaîne, soit ajouter un {"click": handlerFuncName}. Cela ne fait aucune différence comme prévu.

J'ai essayé d'ajouter la couche de tuiles de base avant/après la superposition, et rien n'a changé. J'ai également supprimé le gestionnaire de clic sur la carte pour éviter un conflit d'événement. Je me retrouve donc avec une carte avec juste une mosaïque + une superposition et un gestionnaire d'événements en un clic, mais toujours, rien ne se déclenchera. Le curseur de la souris indique que le calque n'est pas du tout cliquable.

J'ai également modifié les couleurs de la superposition pour m'assurer qu'elle était correctement ajoutée à l'objet de la carte. Il est au-dessus du carreleur.

Cela se produit dans les derniers Chrome v52 et Safari 9 sur Mac.

Après avoir essayé près de 4 heures sur ce sujet ... je soupçonne que cela pourrait être quelque chose de stupide dans mon code ou qu'il y a des changements d'API que je manque dans le journal des modifications. J'apprécierais si vous pouviez offrir quelques conseils sur ce que j'aurais pu faire de mal. Toute idée serait appréciée.

Commentaire le plus utile

@mourner Après réflexion, je me rends compte que je n'ai pas mis à jour le CSS au plus tard. Cela a peut-être contribué à ce que le niveau zIndex ne soit pas correct ou a interdit certains événements de clic. Maintenant, tout semble être normal simplement en mettant à jour le CSS au plus tard. Fermeture du problème.

Tous les 4 commentaires

Pouvez-vous configurer un cas de test minimal exact sur JSFiddle ou Leaflet Playground reproduisant le problème ?

@mourner Je vais essayer une aire de jeux avec quelques Geojson simples et voir ce qui se passe. Je n'ai pas eu le code du gestionnaire de clics cassé dans des exemples très isolés. J'ai même débogué l'objet calque dans le débogueur... le gestionnaire de clic est définitivement ajouté. Un événement de clic est déclenché sur la tuile <img> lorsque je clique sur les calques.

Je ne vois aucun autre facteur influençant cela.

@mourner vient de l'essayer avec rc3 sur le terrain de jeu, la couche geojson brute fonctionne toujours comme prévu ...

@mourner Après réflexion, je me rends compte que je n'ai pas mis à jour le CSS au plus tard. Cela a peut-être contribué à ce que le niveau zIndex ne soit pas correct ou a interdit certains événements de clic. Maintenant, tout semble être normal simplement en mettant à jour le CSS au plus tard. Fermeture du problème.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

onethread picture onethread  ·  3Commentaires

viswaug picture viswaug  ·  4Commentaires

jblarsen picture jblarsen  ·  3Commentaires

timwis picture timwis  ·  3Commentaires

CallMarl picture CallMarl  ·  3Commentaires