leaflet - 有没有更好的方法来获取传单中“popupopen”事件的源标记?
问题描述
所以这就是我现在的做法:
map.on('popupopen', ({ popup }) => {
if (popup instanceof L.Popup) {
const marker = popup._source as L.Marker;
}
});
我真的不喜欢在传单中访问私有变量。我仍然没有在传单 api clean 方法中找到绑定到活动弹出窗口的标记。
解决方案
更好的方法是在标记 popupopen 上发出新事件并从您想要的任何地方访问它。
popupopen: () => {
map.fire('someevent', { somemarker });
},
map.on({
'someevent': (event) => {} // <- event has marker
});
推荐阅读
- javascript - line-height 没有相对变化(基于其父 div 的大小)
- c++ - 简单形式的 Idomatic QT 架构?
- java - 黄瓜范围报告 - 如何将失败案例的屏幕截图添加到范围报告中
- python - 如何使用python读取json文件并根据ID打印json正文
- reactjs - 将图像与 ReactJS 中的帖子相关联
- javascript - 如何在反应组件中使用 dojo 小部件?
- javascript - 输入掩码模式 YYYY-dd-mm 不起作用
- python - ValueError:“顶点”必须是形状为 Nx2 的二维列表或数组(Matplotlib)
- swift - 由于“内部”保护级别,初始化程序不可访问
- javascript - 如何使用 setState 更改嵌套对象之一