// 添加地图
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([color=Red]e[/color]){
[color=Red]if(e.overlay){
return; // 存在覆盖物退出
}[/color]
alert("map");
});
评论(0)
暂无评论。