我不明白我做错了什么?我想我写了一切顺利:

HTML代码如下所示:

    <b>&nbspSelect Area</b>
    <select id="mySelect_1" onchange="showSelectedArea();" > 
    <option selected disabled hidden value=''></option>"
    <option value="1">Center</option> 
    <option value="2">New jersey</option>
    </select>
.

和javascript是:

    layer1.setVisibility(false);    
    layer2.setVisibility(false);    
    layer3.setVisibility(false);
    layer4.setVisibility(false);    

    }

    function showSelectedArea() {

    var e = document.getElementById("mySelect_1");
    var valueEpilogi_1 = e.options[e.selectedIndex].value;

    if (valueEpilogi_1 == "1") {
          layer3.setVisibility(true);   
    }

    }
.

我不认为问题是使用if或传递的值,如果我设置true== true它仍然不会设置真实的可见性。我认为在Select标记处触发功能存在问题。

请检查我的外部JS文件并告诉我问题是什么?我在Init函数中定义了所有层,运行在Doby上的负载??是问题?snk.to/f-cdh90xd4

有帮助吗?

解决方案

必须读取选择的值:

var valuepilogi_1= document.geteLementById('myselect_1')。值;

编辑: 如果要在init()函数之外使用“图层”,则必须定义为全局变量

示例:

function init(){
/* this variable is global, declaration without  'var' before, so it can be used out of the function*/
perioxes = new OpenLayers.Layer.Vector("Polygon Layer");
...
map.addLayer(perioxes); 
..
perioxes.setVisibility(false); 
...
}

function showSelectedArea() {

var valueEpilogi_1 = document.getElementById('mySelect_1').value ;

if (valueEpilogi_1 == "1") {
layer.setVisibility(true);   
}

}
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top