質問

私は70 - いくつかの多角形からなるGeojson層を持つLeaflet.jsを使った地図を持っています。ユーザーがポリゴンをクリックするたびに、それは強調表示され、サイドパネルがデータで埋められて開く:

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");
}
.

はうまく機能します。しかし、ポリゴンをクリックするたびにそれを変更する必要があるので、同時に強調表示され、以前にクリックされたポリゴンが元のスタイルに戻るので、一度に1つのポリゴンのみが「選択」しか表示されません。

これを試してみましたが、うまくいかない(パネルは更新または開かれていない):

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