muz*_*far 7 javascript leaflet
我在我的一个项目中使用 Leaflet,但遇到了一个问题,解释如下:
我使用以下方法在地图上实现了点击事件
map.on('click', function(e) {
console.log(e)
});
Run Code Online (Sandbox Code Playgroud)
一切正常。
我还在地图上添加了 geojson 图层。所以,问题是当我单击覆盖 geojson 层(实际上是多边形层)时,地图单击事件未触发。因此,我的问题是我应该做什么,以便当我单击地图上的覆盖层时,地图单击事件也起作用?
正如评论中所说,该click事件绑定到地图或覆盖层,但它不会从一个层冒泡到另一个层。您必须将其附加到所需的对象。
您可以将单击绑定到整个覆盖(因为它继承自L.Evented)或单个功能。
要将其绑定到各个功能,请查看教程的 onEachFeature 部分。
function onEnachFeature(feature, layer) {
console.log(feature.properties);
}
L.geoJSON(geojsonFeature, {
onEachFeature: onEachFeature
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)
根据您想要实现的目标,bindPopup和bindTooltip将很有用。
另外,请考虑到正如文档所解释的那样
事件会传播到要素组,因此如果该组具有事件处理程序,它将处理来自任何图层的事件。这包括鼠标事件和自定义事件。
因此,您可以根据您的用例选择绑定到每个功能或具有类似效果的图层。
| 归档时间: |
|
| 查看次数: |
2593 次 |
| 最近记录: |