vue引入百度地图,例子如下图显示:存在点线面和图片等覆盖物
点击 点 的时候可用stopPropagation阻止冒泡
e.domEvent.stopPropagation();
点击其他就不行,就会出现冒泡
let allOverlays = map.getOverlays();
for (var i = 0; i < allOverlays.length; i++) {
const overlay = allOverlays[i];
overlay.addEventListener('click', (e) => {
console.log(e)
let obj = overlay.toString();
if (obj == 'Marker') {
console.log('点');
} else if (obj == 'Polygon') {
console.log('面');
} else if (obj == 'GroundOverlay') {
console.log('图片');
} else if (obj == 'Polyline') {
console.log('线');
}
e.domEvent && e.domEvent.stopPropagation();
})
}
event.stopImmediatePropagation(); // 阻止事件冒泡和其他监听器调用
let allOverlays = map.getOverlays();
for (var i = 0; i < allOverlays.length; i++) {
const overlay = allOverlays[i];
overlay.addEventListener('click', (e) => {
console.log(e);
let obj = overlay.toString();
if (obj == 'Marker') {
console.log('点');
} else if (obj == 'Polygon') {
console.log('面');
} else if (obj == 'GroundOverlay') {
console.log('图片');
} else if (obj == 'Polyline') {
console.log('线');
}
if (e.domEvent) {
e.domEvent.stopPropagation();
e.domEvent.stopImmediatePropagation();
}
});
}
百度地图API的事件处理:覆盖物的如何阻止冒泡的方法
https://www.cnblogs.com/well1010/p/3509453.html