我有一个包含多个标记的功能组。
我有这个代码来响应任何标记的点击:
sampleFeatureGroup.on("click", function(){
alert(this.id); // something like this
});
我希望能够获得从函数中点击的标记的id,但是"这个"指的是功能组,所以我找不到点击标记的ID,这看起来应该很容易,但我无法弄清楚。
答案 0 :(得分:6)
您必须使用eachLayer
遍历featureGroup,然后将函数绑定到click事件,如下所示:
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
答案 1 :(得分:0)
尽管可以使用this._leaflet_id
检索ID,但这不是最佳做法,因为前缀为_
的变量应视为私有。
相反,最好使用如下getLayerId()
函数:
group.eachLayer(function(layer) {
layer.on('click', function(){
alert(group.getLayerId(layer))
});
});