Сброс стиль на листочке многоугольника на щелчок

StackOverflow https://stackoverflow.com//questions/21029533

  •  21-12-2019
  •  | 
  •  

Вопрос

У меня есть карта, сделанная с помощью Lastlet.js с герозом слоем, состоящим из 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");
}
.

Это работает нормально.Но мне нужно изменить его, чтобы каждый раз нажал многоугольник, он одновременно выделяется, и ранее нажал многоугольников, возвращается к исходному стилю, поэтому только один многоугольник когда-либо «выбран» за раз.

Я попробовал это, но это не работает (панель больше не обновляется и не открыта):

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

    info.update(layer.feature.properties);
    $( "#mypanel" ).panel("open");
    layer = lastClickedLayer;
}
.

Любая помощь очень ценится.

Это было полезно?

Решение

Ваше назначение неверно, это должно быть

lastClickedLayer = layer;
.

Вы также должны добавить дополнительно проверьте, если lastClickedLayer уже установлен:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top