Leaflet popupopen事件处理程序在popup实际打开之前运行

Leaflet popupopen事件处理程序在popup实际打开之前运行,leaflet,Leaflet,考虑以下代码: L.marker({lat: 30.267222, lon: -97.743056}) .addTo(mymap) .bindPopup("hello world!") .on('popupopen', function(e) { alert('this far'); }); 当我运行它时,alert()会在弹出窗口实际出现之前运行。有没有办法让一些javascript代码在弹出窗口出现后运行 我这样问是因为我

考虑以下代码:

    L.marker({lat: 30.267222, lon: -97.743056})
        .addTo(mymap)
        .bindPopup("hello world!")
    .on('popupopen', function(e) { alert('this far'); });
当我运行它时,
alert()
会在弹出窗口实际出现之前运行。有没有办法让一些javascript代码在弹出窗口出现后运行

我这样问是因为我正在尝试在弹出窗口出现后运行一些javascript,这会对可见元素产生影响。如果popupopen事件处理程序运行时弹出窗口未打开,则javascript显然无法工作

有什么想法吗

JS小提琴:


谢谢

使用
setTimeout
使用短延迟怎么样

 L.marker({
        lat: 30.267222,
        lon: -97.743056
      })
      .addTo(mymap)
      .bindPopup("hello world!")
      .on('popupopen', function(e) {
        setTimeout(() => {
          alert('this far');
        }, 100)
      });

快速入门-单张
var mymap=L.map('mapid').setView({
拉脱维亚:30.267222,
lon:-97.743056
}, 13);
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?访问令牌=pk.eyj1ijoibwwwwym94iiwiysi6imnpejy4nxvycta2emycxbndhrqcmz3n3gifq.rjcfig214ariislb6b5aw'{
maxZoom:18,
属性:“映射数据©;贡献者”+
', ' +
“图像”,
id:“地图盒/街道-v11”,
tileSize:512,
Zoomofset:-1
}).addTo(mymap);
L.标记({
拉脱维亚:30.267222,
lon:-97.743056
})
.addTo(mymap)
.bindpoop(“你好,世界!”)
.on('popupopen',函数(e){
设置超时(()=>{
警报(“到目前为止”);
}, 100)
});