不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
百度地图点击Marker同时触发Map的click事件解决方法
编辑:dnawo 日期:2020-06-13
在页面上添加个百度地图,地图上添加了一个Marker,并且给Map和Marker都添加了click事件处理程序:
测试发现了问题:点击Marker时,不仅触发了Marker的click事件处理程序,还同时触发了Map的click事件处理程序,怎么解决这个问题呢?
翻阅百度地图开放平台《Javascript API》,Map对象click事件参数为"{type, target, point, pixel, overlay}",利用overlay参数,我们只需在Map处理程序增加判断如果当前位置有覆盖物则不执行后续程序即可:
复制内容到剪贴板
程序代码

// 添加地图
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);
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");
});
if(e.overlay){
return; // 存在覆盖物退出
}
alert("map");
});






评论: 0 | 引用: 0 | 查看次数: 6991
发表评论
请登录后再发表评论!