Javascript 单击重置传单多边形上的样式

Javascript 单击重置传单多边形上的样式,javascript,leaflet,mapbox,Javascript,Leaflet,Mapbox,我有一张地图,上面有一个geoJSON图层,由70个多边形组成。每次用户单击多边形时,该多边形都会高亮显示,并会在侧面板中填充数据并打开: function clickFeature(e) { var layer = e.target; layer.setStyle({ weight: 3, color: '#666', dashArray: '', fillOpacity: 0.7 });

我有一张地图,上面有一个geoJSON图层,由70个多边形组成。每次用户单击多边形时,该多边形都会高亮显示,并会在侧面板中填充数据并打开:

function clickFeature(e) {
    var layer = e.target;
        layer.setStyle({
        weight: 3,
        color: '#666',
        dashArray: '',
        fillOpacity: 0.7
    });

    info.update(layer.feature.properties);
    $( "#mypanel" ).panel("open");
}
那很好。但我需要更改它,以便每次单击多边形时,它都会同时高亮显示,并且先前单击的多边形会返回到原始样式,因此一次只能“选择”一个多边形

我尝试过这个,但不起作用(面板不再更新或打开):


非常感谢您的帮助。

您的作业是错误的,必须纠正

lastClickedLayer = layer;
如果已设置了
lastClickedLayer
,则还应添加额外的检查:

if(lastClickedLayer){
   geojson.resetStyle(lastClickedLayer);
}

我也遇到了同样的问题,我遇到的问题是,当用户点击另一个多边形,或者点击该多边形,然后点击另一个多边形时,如何检测。如果您在已选中一个多边形时单击另一个多边形,则单击会在弹出窗口关闭之前触发。这实际上是一个挑战,需要正确操作,同时考虑到用户在同一区域单击两次。。。
if(lastClickedLayer){
   geojson.resetStyle(lastClickedLayer);
}