我在我的一个项目中使用Leaflet,我遇到了一个问题,如下所述:
我已使用
在地图上实施了点击事件map.on('click', function(e) {
console.log(e)
});
一切正常。
我还在地图上添加了一个geojson图层。所以,问题是当我点击叠加geojson图层(实际上是一个多边形图层)时,地图点击事件未被触发。因此,我的问题是,当我点击地图上的叠加图层时,我应该怎么做才能使地图点击事件有效?
答案 0 :(得分:1)
正如在评论中说的那样,click
事件被绑定到地图或叠加层,但它不会从一个到另一个冒泡。您必须将其附加到所需对象。
您可以将点击次数绑定到整个叠加层,因为它会从L.Evented或个别要素继承。
要将其绑定到各个功能,请检查onEachFeature section of the tutorial。
function onEnachFeature(feature, layer) {
console.log(feature.properties);
}
L.geoJSON(geojsonFeature, {
onEachFeature: onEachFeature
}).addTo(map);
根据您要实现的目标,bindPopup和bindTooltip将非常有用。
另外,请考虑doc explains
事件将传播到FeatureGroup,因此如果该组具有 事件处理程序,它将处理来自任何层的事件。这个 包括鼠标事件和自定义事件。
因此,您可以根据用例选择绑定到每个要素或具有相似效果的图层。