首页 > 解决方案 > 有没有更好的方法来获取传单中“popupopen”事件的源标记?

问题描述

所以这就是我现在的做法:

 map.on('popupopen', ({ popup }) => {
  if (popup instanceof L.Popup) {
    const marker = popup._source as L.Marker;
  }
});

我真的不喜欢在传单中访问私有变量。我仍然没有在传单 api clean 方法中找到绑定到活动弹出窗口的标记。

标签: leaflet

解决方案


更好的方法是在标记 popupopen 上发出新事件并从您想要的任何地方访问它。

popupopen: () => {
  map.fire('someevent', { somemarker });
},
map.on({
  'someevent': (event) => {} // <- event has marker
});

推荐阅读