Вопрос

Я не могу понять, что я делаю не так?Я думаю, что я написал все очень хорошо:

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

    }
.

Я не думаю, что проблема состоит в том, что если бы или передавать значение, если я устанавливаю true== true, он все еще не будет установить видимость true.i думаю, что есть проблема с запуском функции в теге выбора.

Пожалуйста, проверьте мой внешний файл JS и скажите, что такое проблема ??Я определяю все слои в функции init, которая запускает нагрузку на кого-нибудь?snk.to/f-cdh90xd4

Это было полезно?

Решение

Вы должны прочитать значение выбора, попробуйте:

var valueepileogi_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