markerClusterGroupにマーカーを表示するマップ上で作業しています。すべてのmarkerClusterGroupは異なる背景色を持つ必要があります。異なる色のmarkerClusterGroupを追加します
if (isChecked) {
color_html=$widget.data('colorhtml');
add_contacts(file);
}
add_contacts(file){
my_objects["contactsGroupe_"+file]=new L.markerClusterGroup({
iconCreateFunction: function(cluster) {
return new L.DivIcon({
html: '<div style="color: white; background: '+color_html+'; border-radius:5px; text-align: center; font-size: 18px; box-shadow: 8px 8px 12px grey; border: 0.1px solid '+color_html+'; display: inline-block; vertical-align:middle;">' + cluster.getChildCount() +'</div>',
iconSize: [0,0]
});
},
}).addTo(map);
}
my_objects["contactsGroupe_"+file].addLayer(my_objects["contacts_"+file]);
また、表示するファイルを選択するチェックリストがあります。 最初のファイルをチェックすると、背景色が選択されたmarkerClusterGroupが表示され、2番目のファイルを選択すると、背景色が異なる2番目のマーカーClusterGroupが表示されますが、拡大または縮小すると、同じ背景色(最後に選択した色と同じもの)と、最初のズームに戻ったときの色は2種類あります。 異なる色で背景色を変えたい場合は、最初のmarkerClusterGroupを追加した後、2番目のmarkerClusterGroupを追加する前にズームする必要があります。
誰かがこの問題を理解するのを助けることができます。 thnx
どこ変数 'color_html'セットですか?新しいグループを作成するときにそれを新しい値に設定し、マップのリセット時に古いグループの関数がこの新しい値をとることがあります。 – Krxldfx
@Krxldfxで強調表示されているように、 'color_html'変数に関する情報がありません。 _scoping_問題が発生している可能性があります。 「JavaScriptのクロージャはどのように機能しますか?」(https://stackoverflow.com/questions/111102/how-do-javascript-closures-work) – ghybs
@krxldfx質問を編集しました。 –