tutoriales tutorial leafletjs examples example javascript jquery gis openstreetmap leaflet

javascript - tutorial - leaflet src js



¿Cómo identificar el marcador de Leaflet durante un evento `popupopen`? (4)

El objeto de evento contiene un atributo "emergente" que tiene un atributo privado llamado "_source" que es el objeto al que está vinculado el elemento emergente (es decir, el marcador). Dado que se supone que _source es privado, esto no parece ser el camino correcto, pero no estoy seguro de cómo hacerlo.

map.on(''popupopen'', function(e) { var marker = e.popup._source; });

cuando se hace clic en un marcador, necesito ejecutar un código que encuentre el id correspondiente al marcador en el que se hace clic, recupera los datos de la API de backend y luego agrega los datos recién recuperados al content de la ventana emergente que se abrirá.

La única manera de escuchar un evento de clic en el marcador es

map.on(''popupopen'', function(e){ // How to retrieve marker? // eg: Assign an id on creation, retrieve it now during popupopen };)

¿Cómo puedo saber qué marcador es este? ¿Es posible agregar un atributo de id a cada marcador y luego recuperar esta id durante el evento popupopen ?


Los objetos de Javascript pueden tener propiedades definidas en ellos. Establezca popup.marker en el marcador de referencia cuando cree la ventana emergente. A continuación, puede acceder a él más adelante en el controlador de eventos.


Otras respuestas no funcionaron, pero esto sí:

map.on(''popupopen'', function(e) { alert(e.popup._source._popup._content); });

Supongo que esta biblioteca es bastante volátil ... y no estoy seguro de por qué es tan complicado transmitir esa información en primer lugar. <shrug>


Para obtener la identificación del marcador, puedes usar este código:

map.on(''popupopen'', function(e) { var marker = e.popup._source.feature.properties.markerid; });