Я пытаюсь использовать 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
закончена, я вижу «закрывающееся всплывающее окно», напечатанное на консоли вместо «открывающееся всплывающее окно». При закрытии всплывающего окна на консоль выводится «закрывающее всплывающее окно», что соответствует ожидаемому поведению.
Правильно ли я использую эти события? Если нет, то как мне правильно прослушать события открытия и закрытия?