欢迎光临

木子屋

标题: 百度地图点击Marker同时触发Map的click事件解决方法

作者: dnawo

日期: 2020-06-13 10:20 AM

分类: Web编程

内容: 在页面上添加个百度地图，地图上添加了一个Marker，并且给Map和Marker都添加了click事件处理程序：
复制内容到剪贴板 程序代码// 添加地图
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(120.128132,30.228835), 13);
map.addEventListener("click", function(){
alert("map");
});
// 添加标注点
var marker = new BMap.Marker(new BMap.Point(120.140421,30.222657));
marker.addEventListener("click", function(){
alert("marker");
});
map.addOverlay(marker);
测试发现了问题：点击Marker时，不仅触发了Marker的click事件处理程序，还同时触发了Map的click事件处理程序，怎么解决这个问题呢？
翻阅百度地图开放平台《Javascript API》，Map对象click事件参数为"{type, target, point, pixel, overlay}"，利用overlay参数，我们只需在Map处理程序增加判断如果当前位置有覆盖物则不执行后续程序即可：
复制内容到剪贴板 程序代码map.addEventListener("click", function(e){
if(e.overlay){
return; // 存在覆盖物退出
}
alert("map");
});

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.953 ms

返回

标题: 百度地图点击Marker同时触发Map的click事件解决方法

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.953 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.000 ms

返回