Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传单地图:单击“更改所有标记的颜色”_Javascript_Dictionary_Leaflet_Markers - Fatal编程技术网

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

Javascript 传单地图:单击“更改所有标记的颜色”,javascript,dictionary,leaflet,markers,Javascript,Dictionary,Leaflet,Markers,我肯定错过了一些js语法来实现这一点,但谷歌搜索并没有让我得出任何结论 我想在单击时切换标记颜色。我将精灵预定义为变量“greenIcon”和“defaultIcon”。每个标记都适用于单个标记,我可以通过以下方式来回切换: .on('click', function(e) { if (this.getIcon() != greenIcon) { this.setIcon(greenIcon); } else { this.setIcon(defaultIcon); } }) 就这么简

我肯定错过了一些js语法来实现这一点,但谷歌搜索并没有让我得出任何结论

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

.on('click', function(e) {
if (this.getIcon() != greenIcon) {
  this.setIcon(greenIcon);
} else {
  this.setIcon(defaultIcon);
}
})
就这么简单。我想实现的是,单击一个标记,其他标记将更改为“defaultIcon”,只有这个标记可以切换。在所示示例中,除了“this”,还有什么我可以使用的吗?比如,all.setIcon(defaultIcon)

我的标记属性在变量数组中定义,名为“点”:


提前谢谢

添加标记时,将它们推入数组
const markers=[]
在开始的某个地方,并且
大于markers.push(L.marker(…
),如果向点添加某种唯一的键,则可以通过迭代数组或单个数组来操作所有标记。也可以使用
this
访问当前标记


我编辑了小提琴,请在添加标记时检查。

将它们放入数组。
const markers=[]
在开头的某个地方,并
比markers.push(L.marker(…
然后,如果向点添加某种唯一键,您可以通过迭代数组或单个数组来操作所有点。您也可以使用
访问当前点


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

你有一些代码沙盒可以制作这个问题吗?@radulle当时有点混乱,但我希望它能显示出我的想法。我标记了我希望所有标记都默认的位置。干杯!我编辑了小提琴,请检查你有一些代码沙盒可以制作I问题?@radulle当时有点混乱,但我希望它能显示出我的想法。我标记了我希望所有标记都默认的地方。干杯!我编辑了小提琴,请检查一下,好的,在你给我看链接之前我肯定得到了灵感,我现在就知道了!非常感谢:)没问题,如果你打算有更多类型的标记/图标,我建议你使用插件传单Awesome markers()来简化样式。上还有其他的,但我还没有全部尝试过。好的,在你给我看链接之前,我肯定得到了脑力激荡,我现在明白了!非常感谢:)没问题,如果你打算有更多类型的标记/图标,我建议你使用插件传单awesomemarks()来简化样式。还有其他的,但我还没有全部尝试过。
    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);
});