Leaflet 使用变量来调用标记和更新选项是行不通的
我必须通过调用分配给它们的变量来更改标记选项,但问题出在这里Leaflet 使用变量来调用标记和更新选项是行不通的,leaflet,Leaflet,我必须通过调用分配给它们的变量来更改标记选项,但问题出在这里 var CL1 = L.marker([-36.597889, -80.15625], { divId: 1, opacity: 1, }) .addTo(map) var id = 1; // this do not work var clickedMarker = 'CL'+id; // this do not work clickedMarker.setOpacity(.5); // th
var CL1 = L.marker([-36.597889, -80.15625], {
divId: 1,
opacity: 1,
})
.addTo(map)
var id = 1; // this do not work
var clickedMarker = 'CL'+id; // this do not work
clickedMarker.setOpacity(.5); // this do not work
但这一个有效
CL1.setOpacity(.5); //working
为什么呢?我得到的错误是未捕获类型错误:clickedMarker.setOpacity不是一个函数您正在使用
var clickedMarker='CL'+id创建一个字符串
这样,您将无法访问变量CL1
。可以使用列表将变量名映射到变量self
var mapping = {};
var CL1 = L.marker([-36.597889, -80.15625], {
divId: 1,
opacity: 1,
})
.addTo(map)
mapping['CL1'] = CL1;
var id = 1;
var clickedMarkerId = 'CL'+id;
var clickedMarker = mapping[clickedMarkerId]; // get the marker variable over the String 'CL1'
clickedMarker.setOpacity(.5);
谢谢对我有用的解释。