Открытое событие Maxbox GL JS Popup не работает должным образом - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь использовать Popup.on('close') и Popup.on('open') для запуска определенных функций, и событие открытия не работает, как я ожидал.

Когда карта загружается сначала и щелкает многоугольник, не запускаются события открытия или закрытия. Я ожидаю, что здесь будет работать открытое мероприятие.

Когда нажимается другой многоугольник, я использую Popup.remove(), чтобы избавиться от активного всплывающего окна, а затем создается новое всплывающее окно с обновленными данными. Здесь происходит только закрытие. Я ожидаю, что открытое событие также будет запущено.

При нажатии кнопки закрытия по умолчанию событие закрытия работает, как и ожидалось.

map.once('moveend',function(){

    popup = new mapboxgl.Popup()
        .setDOMContent('whatevs')
        .addTo(map);

    popup.on('close',function(){
        console.log('closing popup');
    });

    popup.on('open',function(){
        console.log('opening popup');
    });

});

Когда я нажимаю на один из моих полигонов, у меня есть метод flyTo. Когда анимация flyTo закончена, я вижу «закрывающееся всплывающее окно», напечатанное на консоли вместо «открывающееся всплывающее окно». При закрытии всплывающего окна на консоль выводится «закрывающее всплывающее окно», что соответствует ожидаемому поведению.

Правильно ли я использую эти события? Если нет, то как мне правильно прослушать события открытия и закрытия?

...