在传单easybutton.js中更改样式

时间:2018-12-16 21:43:28

标签: javascript leaflet

我正在使用传单插件easybutton.js,我添加了2个按钮,但是我想在不同点更改它们的背景颜色,但我似乎无法完全到达那里。添加它们时,我可以更改背景颜色,但是效果只有在单击后才能生效,而且我也希望能够在不同点更改背景颜色。

https://github.com/CliffCloud/Leaflet.EasyButton

这样添加按钮

L.easyButton('<img src="img/myimage.jpg">', function(btn, map){
 btn.button.style.backgroundColor = 'yellow';
    var destination = [newlat, newlng];
    map.setView(destination);
}).addTo(map);

L.easyButton('<img src="img/myimage2.jpg">', function(btn, map){
    btn.button.style.backgroundColor = 'red';
    var destination = [52.450439,-1.729660];
    map.setView(destination);
}).addTo(map);

如您所见,这会更改背景色,但仅在单击时会更改背景色,如果以后要更改其中任何一个,该怎么做?我必须给他们一个身份证或其他东西吗?

1 个答案:

答案 0 :(得分:0)

将按钮对象保存在全局变量中,以便以后使用。...

var btn1;
var btn2;    
L.easyButton('<img src="img/myimage.jpg">', function(btn, map){
 btn1 = btn;
 btn.button.style.backgroundColor = 'yellow';
    var destination = [newlat, newlng];
    map.setView(destination);
}).addTo(map);

L.easyButton('<img src="img/myimage2.jpg">', function(btn, map){
    btn2 = btn;
    btn.button.style.backgroundColor = 'red';
    var destination = [52.450439,-1.729660];
    map.setView(destination);
}).addTo(map);

当您要以编程方式更改颜色时,在代码中的其他地方:

btn1.button.style.backgroundColor = 'blue';
btn2.button.style.backgroundColor = 'green';