我不明白我在做什么错?我想我写得非常好:

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,它仍然不会将可见性设置为true。我认为在select标记处触发函数存在问题。

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

最佳答案

您必须读取select try的值:

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

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

例如:

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);
}

}

关于javascript - OpenLayers:如何打开图层的可见性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25036432/

10-12 01:54