Mapbox GL JS收听弹出式开放事件?

时间:2018-03-08 18:54:58

标签: javascript mapbox-gl-js

有没有办法检测Mapbox弹出窗口何时打开? mapbox repo中的This issue描述了一个close事件,其行为如下:

let popup = new mapboxgl.Popup()
popup.on('close', function(e) {
    alert()
})

但是,我找不到任何方法来检测弹出窗口何时打开。这不起作用:

let popup = new mapboxgl.Popup()
popup.on('open', function(e) {
    alert()
})

修改

现在支持弹出事件,因此上面的示例应该有效。

1 个答案:

答案 0 :(得分:0)

虽然官方API不提供“开放”事件,但您可以尝试编写自己的自定义事件。请参阅:https://www.mapbox.com/mapbox-gl-js/api/#evented#fire

 let popup = new mapboxgl.Popup()
 popup.on('click', function(e) {
   // popup opened so we fire an event
   map.fire('your.custom.popup.event.name', {popup});
 });

 // subscribe to the event
 map.on('your.custom.popup.event.name', (popup) => { 
   console.log('do something with popup', popup);
 });