Leaflet: .on ('popupopen') evento no disparado en marcadores

Creado en 22 sept. 2014  ·  3Comentarios  ·  Fuente: Leaflet/Leaflet

Hola,

CONTEXTO
Escribí varias directivas de AngularJS para folletos. Uno para el mapa, uno para la capa, uno para marcadores y uno para ventanas emergentes.

La directiva angular para la ventana emergente está a la espera de que se asocie un marcador.

    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });

ESPERADO
Todos los eventos deben ser despedidos.

RESULTADO

popupevent no está despedido? Los demás están despedidos.


Folleto: 0,7,2
SO: Windows 7
navegador: Google Chrome 37 y Firefox 32

Comentario más útil

Aquí está el problema, cuando haces esto

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
marker.bindPopup("my content");

El método bindPopup() puede tener un objeto String o Popup. Para este ejemplo, pasamos un String y el método creará la ventana emergente correcta. Si pasa un elemento emergente personalizado, debe agregar el marcador en la ventana emergente antes. De lo contrario, la ventana emergente nunca tendrá su elemento fuente.

La solución definitiva.

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );

var popupOptions = {};
// you have to append the marker on the creation of the popup
// so that the popup element will have the marker source.
var popup = L.popup(popupOptions, marker );

// and this will work !
marker
    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });

Todos 3 comentarios

Después de algunas pruebas, el problema provino de nuestra biblioteca personalizada emergente.

comentar avez vous fait?

2014-09-22 11:39 GMT + 02: 00 Pierre Baron [email protected] :

Cerrado # 2907 https://github.com/Leaflet/Leaflet/issues/2907.

-
Responda a este correo electrónico directamente o véalo en GitHub
https://github.com/Leaflet/Leaflet/issues/2907#event -168346883.

Aquí está el problema, cuando haces esto

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
marker.bindPopup("my content");

El método bindPopup() puede tener un objeto String o Popup. Para este ejemplo, pasamos un String y el método creará la ventana emergente correcta. Si pasa un elemento emergente personalizado, debe agregar el marcador en la ventana emergente antes. De lo contrario, la ventana emergente nunca tendrá su elemento fuente.

La solución definitiva.

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );

var popupOptions = {};
// you have to append the marker on the creation of the popup
// so that the popup element will have the marker source.
var popup = L.popup(popupOptions, marker );

// and this will work !
marker
    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });
¿Fue útil esta página
0 / 5 - 0 calificaciones