, espérons-le, facile!
Après l'envoi d'un formulaire, je souhaite émuler un événement de clic sur:
J'ai actuellement le code suivant qui renvoie un objet:
layerWardDev.fire ('clic', {lat: 51.507, lng: -0.127})
Cependant, le clic ne fonctionne pas / déclenche le popup / divers autres écouteurs d'événements qui en dépendent. Est-ce que je rate quelque chose de simple? Merci!
3 Réponses :
Les données d'un événement de clic doivent être un MouseEvent
- donc
layerWardDev.fire('click',{ latlng: ([51.507, -0.127])});
doit le faire.
Cela dépend vraiment des couches que vous souhaitez utiliser (quelles fenêtres contextuelles).
Hypothèse 1: nous avons des marqueurs A en haut de notre MapDev
Ce que nous pouvons faire est de: sélectionner le marqueur par son identifiant (exemple A [i]), A [i] .fire ('clic'); et la fenêtre contextuelle est déjà définie pour l'événement de clic.
Hypothèse 2: la fenêtre contextuelle est directement en haut de la carte nous pouvons ouvrir une fenêtre contextuelle directement sans émuler l'événement de clic:
L.popup() .setLatLng([51.507, -0.127]) .setContent('Test') .openOn(mymap);
Merci, le problème est que l'événement de clic déclenche d'autres écouteurs d'événements qui peuplent d'autres parties des données si malheureusement bien que cela créerait une fenêtre contextuelle, ce sont en fait les autres écouteurs d'événements pour remplir un tableau de bord que j'essaie de déclencher (basé sur cet événement de clic)
Malheureusement, ce n'est pas une solution exacte ... J'ai parcouru chaque calque avec .eachLayer () et cliqué sur la carte manuellement pour chacun.
L'autre chose que j'ai décidé d'utiliser à la place est le .featureGroup qui, je pense, fournit une fonctionnalité plus riche que layerGroups
Ces écouteurs d'événements devraient écouter sur l'objet
mymap
, pas sur votre couche.mymap.fire ('click', ...)
fonctionne-t-il?@Kvothe merci pour la réponse, mais malheureusement non, cela ne fonctionne pas non plus