弹窗中绑定了点击事件,在点击弹窗A下方的标记时,显示弹窗A(如图),此时点击另一个标签时,弹窗A消失,在点击的标记上显示弹窗B。弹窗B中显示的内容是正确的,但是在popupopen中获取的id值是弹窗A的id并且点击事件失效。刚接触leaflet,请问这个问题如何解决
const point = (arr: number[]) => {
var array = [arr.latitude, arr.longitude]
// 设置点标记:[纬度, 经度]
const marker = L.marker(array)
// 给标记添加事件
map.on('popupopen', function(e) {
setTimeout(function() {
var bridgeNameDiv = document.getElementById('popbox');
bridgeNameDiv.addEventListener('click', function() {
var fileId = document.getElementById('popId')
var obj = {
id: fileId.innerHTML
}
handleEdit(obj)
});
}, 0)
})
marker.on('click', (e) => {
if(e.target._popup != undefined){
console.log('已有弹窗')
return
}
// 弹窗
var contentHTML =
"<div id='popId' style='display: none;'>" + arr.id + "</div>" +
"<div id='textID' style='text-align: left;font-size: 19px;text-shadow: 1px 1px 0 #ffffff;'>弹窗A</div>" +
marker.bindPopup(contentHTML).openPopup();
})
featureGroup.addLayer(marker)
}