2015-04-04 39 views
1

我希望在用戶點擊圖層控件中的「城市」複選框時獲得通知 - 該控件顯示或隱藏linked example中的城市標記。這裏是一個JSFiddle玩耍。如何在Leaflet LayerGroup顯示或隱藏時得到通知?

Leaflet screenshot

我看到LayerGroup派生一些events from FeatureGroup。如果我錯了,請糾正我:據我瞭解,顯示和隱藏標記與layeraddlayerremove不一樣?

input元素包含沒有id綁定到:

<label> 
    <input class="leaflet-control-layers-selector" type="checkbox" checked=""> 
    <span> Cities</span> 
</label> 

怎麼能當標記能見度切換通知我?

回答

5

您可以使用jQuery選擇輸入元素,使用它的類:

$('.leaflet-control-layers-selector').click(function(){ 
    alert('something') 
}); 

此外,如果你有一個以上的層,你可以檢查地圖包含一層當您單擊的一個複選框。

$('.leaflet-control-layers-selector').click(function(){ 
    if(map.hasLayer(cities)) alert('something'); 
}); 

UPDATE

您還可以使用地圖事件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/

相關問題