如何在单击时获取要素组中图层的 ID
How to get ID of layer in feature group on click
我有一个包含多个标记的特征组。
我有这段代码来响应对任何标记的点击:
sampleFeatureGroup.on("click", function(){
alert(this.id); // something like this
});
我希望能够从函数中获取被点击的标记的 id,但是 "this" 指的是特征组,所以我找不到被点击的标记的 id,这看起来应该很容易,但我想不通。
必须使用eachLayer
遍历featureGroup,然后绑定一个函数到点击事件,像这样:
group.eachLayer(function(layer) {
layer.on('click', function(){
alert(this._leaflet_id)
});
});
这是一个关于 Plunker 的工作示例:
http://plnkr.co/edit/4fh7vhVet8N0iD4GE3aN
这里是对 eachLayer
的引用:
http://leafletjs.com/reference.html#layergroup-eachlayer
尽管可以使用 this._leaflet_id
检索 ID,但这不是最佳做法,因为前缀为 _
的变量应被视为私有变量。
相反,最好使用如下所示的 getLayerId()
函数:
group.eachLayer(function(layer) {
layer.on('click', function(){
alert(group.getLayerId(layer))
});
});
我有一个包含多个标记的特征组。
我有这段代码来响应对任何标记的点击:
sampleFeatureGroup.on("click", function(){
alert(this.id); // something like this
});
我希望能够从函数中获取被点击的标记的 id,但是 "this" 指的是特征组,所以我找不到被点击的标记的 id,这看起来应该很容易,但我想不通。
必须使用eachLayer
遍历featureGroup,然后绑定一个函数到点击事件,像这样:
group.eachLayer(function(layer) {
layer.on('click', function(){
alert(this._leaflet_id)
});
});
这是一个关于 Plunker 的工作示例: http://plnkr.co/edit/4fh7vhVet8N0iD4GE3aN
这里是对 eachLayer
的引用:
http://leafletjs.com/reference.html#layergroup-eachlayer
尽管可以使用 this._leaflet_id
检索 ID,但这不是最佳做法,因为前缀为 _
的变量应被视为私有变量。
相反,最好使用如下所示的 getLayerId()
函数:
group.eachLayer(function(layer) {
layer.on('click', function(){
alert(group.getLayerId(layer))
});
});