使用变量调用标记和更新选项将不起作用
using varialbles to call marker and update options wont work
我必须通过调用分配给它们的变量来更改我的标记选项,但这是问题所在。
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
这是为什么?我得到的错误是 Uncaught TypeError: clickedMarker.setOpacity is not a function
您正在使用 var clickedMarker = 'CL'+id;
创建一个字符串,您将无法访问变量 CL1
。您可以使用列表将变量名称与变量自身映射。
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);
我必须通过调用分配给它们的变量来更改我的标记选项,但这是问题所在。
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
这是为什么?我得到的错误是 Uncaught TypeError: clickedMarker.setOpacity is not a function
您正在使用 var clickedMarker = 'CL'+id;
创建一个字符串,您将无法访问变量 CL1
。您可以使用列表将变量名称与变量自身映射。
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);