传单地图:单击更改所有标记的颜色

问题描述 投票:0回答:1

我肯定缺少某种js语法来实现这一目标,但是严格的搜索并没有得出任何结论。

我想在点击时切换标记颜色。我将精灵定义为变量“ greenIcon”和“ defaultIcon”。一切都适用于单个标记,我可以通过以下方式来回切换:

.on('click', function(e) {
if (this.getIcon() != greenIcon) {
  this.setIcon(greenIcon);
} else {
  this.setIcon(defaultIcon);
}
})

就这么简单。我要实现的事情是,单击一个标记,其他标记更改为“ defaultIcon”,并且仅切换该标记。除了“这个”,我还有什么可以使用的。在所示示例中?就像all.setIcon(defaultIcon)?

我的标记属性在var数组中定义,命名为“ points”:

    var points = [
    {latlng: [54.351194, 18.654101], title: "F-225", name: "Marker 1"},
    {latlng: [54.351194, 18.658101], title: "F-226", name: "Marker 2",
];
points.forEach(function(p) {
    L.marker(p.latlng, {
        title: p.title, riseOnHover: true
    })
    .addTo(map)
    .on('click', function(e) {
    // all.setIcon(defaultIcon);
  })
    .bindPopup(popupName);
});

提前感谢!

javascript dictionary leaflet markers
1个回答
1
投票

添加标记时,将它们推入数组。 const markers = []位于开头的某个位置,然后than markers.push(L.marker(...可以通过遍历数组或对单个数组添加单个唯一键来遍历数组。您也可以使用this访问当前的一个。

我编辑了小提琴,请检查link

© www.soinside.com 2019 - 2024. All rights reserved.