为了区分在地图和图层上单击的不同行为,可以通过检查事件的目标来实现。如果单击的是图层,则将其标记为 "虚拟的",并在处理事件时忽略地图级操作。
代码示例:
// 在地图上添加一个图层
var myLayer = L.geoJSON().addTo(map);
// 检查是否点击了图层
function handleClick(e) {
if (e.target === myLayer) {
// 处理图层点击事件
} else {
// 处理地图点击事件
}
}
// 给地图绑定单击事件
map.on('click', handleClick);
在上面的示例中,myLayer
是一个 L.geoJSON()
图层,它被添加到了地图中。单击事件被绑定到了地图上,每次单击时,handleClick()
函数都会被调用。函数检查事件的目标是否为图层 myLayer
,如果是,则处理图层点击事件,否则处理地图点击事件。