问题是,第一次单击标记时,弹出窗口正常打开,但第二次单击同一标记时,弹出窗口不再打开
解决方法:
第一,给marker添加点击事件,不要重复添加
//给marker添加点击事件
marker.on('click',function(e:any){
//判断当前点击弹窗胃口再添加弹窗事件,防止重复添加
if(e.target._popup == undefined){
setMarkerClick(itm,marker)
}
})
第二步,给marker绑定弹窗,必须监听弹窗打开事件,具体实现如下
function setMarker(v:any){
<!--
这里是根据需要写自己的逻辑
-->
//这里要给组件赋值,否则首次弹窗内容没值
myData.branchDetailsParams = {...itm}
myData.clickMarker = marker
marker.bindPopup(branchDetailsRef.value.$el,{
closeButton: false,
autoPan: true, // 当弹窗超出视图时自动平移地图
}).openPopup()
//这里需要监听弹窗打开,否是弹窗隐藏之后无法唤起弹窗
marker.on('popupopen',function(){
//这里要重新给组件赋值,否则第一次之后唤起的弹窗不是当前坐标内容
myData.branchDetailsParams = {...itm}
myData.clickMarker = marker
})
}