Leaflet:Map Click事件在叠加geojson图层上单击时不起作用

时间:2015-05-28 14:10:50

标签: javascript leaflet

我在我的一个项目中使用Leaflet,我遇到了一个问题,如下所述:

我已使用

在地图上实施了点击事件
map.on('click', function(e) {        
    console.log(e)       
});

一切正常。

我还在地图上添加了一个geojson图层。所以,问题是当我点击叠加geojson图层(实际上是一个多边形图层)时,地图点击事件未被触发。因此,我的问题是,当我点击地图上的叠加图层时,我应该怎么做才能使地图点击事件有效?

1 个答案:

答案 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);

根据您要实现的目标,bindPopupbindTooltip将非常有用。

另外,请考虑doc explains

  

事件将传播到FeatureGroup,因此如果该组具有   事件处理程序,它将处理来自任何层的事件。这个   包括鼠标事件和自定义事件。

因此,您可以根据用例选择绑定到每个要素或具有相似效果的图层。