我想在用户单击图层控件中的“城市”复选框时收到通知 - 这会显示或隐藏 linked example 中的城市标记.这是一个 JSFiddle一起玩。
我看到了LayerGroup派生出一些events from FeatureGroup .如果我错了,请纠正我:据我所知,显示和隐藏标记与 layeradd 不同。和 layerremove ?!
input
元素没有要绑定(bind)到的 id
:
<label>
<input class="leaflet-control-layers-selector" type="checkbox" checked="">
<span> Cities</span>
</label>
当切换标记的可见性时如何通知我?
最佳答案
您可以使用 jQuery 来选择输入元素,使用它的类:
$('.leaflet-control-layers-selector').click(function(){
alert('something')
});
此外,如果您有多个图层,则可以通过单击其中一个复选框来检查 map 是否包含图层。
$('.leaflet-control-layers-selector').click(function(){
if(map.hasLayer(cities)) alert('something');
});
更新
您还可以使用 map 事件 overlayadd 和 overlayremove,如下所示:
map.on({
overlayadd: function(e) {
if (e.name === 'Cities') alert('added');
},
overlayremove: function(e) {
if (e.name === 'Cities') alert('removed');
}
});
这是您示例的更新后的 JSFiddle:http://jsfiddle.net/pufanalexandru/g54efr69/1/
关于javascript - 如何在显示或隐藏 Leaflet LayerGroup 时获得通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29447875/