2016-04-21 92 views
0

我有一个按钮,我想用它来打开和关闭地图图层。点击一次,图层添加到地图中,再次单击并消失(依此类推)。现在,我的按钮只能在第一次点击时起作用,而其后没有。单张切换按钮只能在第一次点击时工作

我认为这与它被写为if/else语句有关。条件满足,函数结束,这就结束了。

正在寻找指导...如何修改我的代码以使其成为功能切换按钮?

我的按钮:

<button id="buttonA" onclick=="onoff();">Button A</button> 

然后,功能$.getJSON("mydata.json", function(data) {...});内我有以下几点:

function onoff(){ 
    currentvalue = document.getElementById('onoff').value; 
} 


document.getElementById("buttonA").addEventListener("click", function(){ 
    if (currentvalue = "Off"){ 
     LayerA.addTo(map); 
     document.getElementById("onoff").value="On"; 
    } 
    else{ 
     map.removeLayer(LayerA); 
     document.getElementById("onoff").value="Off"; 
    } 
}); 

回答

1

变化if (currentvalue = "Off")if (currentvalue == "Off")

编辑: 尝试这种方式:

B utton:

<button id="buttonA" onclick="onoff();">Button A</button> 

和JS:

function onoff(){ 
     currentvalue = document.getElementById('onoff').value; 

     if (currentvalue == "Off"){ 
     LayerA.addTo(map); 
     document.getElementById("onoff").value="On"; 
     } 
     else{ 
     map.removeLayer(LayerA); 
     document.getElementById("onoff").value="Off"; 
     } 
    } 
+0

良好的渔获(我上面校正)!不幸的是我仍然有同样的问题。 – user2192778

+0

我编辑了我的答案,检查出 – Remi

+1

仍然没有为我工作(我不知道为什么,这似乎是一个很好的修复)。我发现了一个解决方案,但:'的document.getElementById( “按钮a”)的addEventListener( “点击”,函数(){ 如果(map.hasLayer(层1.)){ map.removeLayer(层1.);} 。 else' { LayerA.addTo(map); } });'结果Leaflet库有一个'hasLayer'函数来检查映射是否有特定的层。谢谢。 – user2192778

相关问题