当用户使用jQuery选择输入元素时,我正试图让OpenLayers设置Layer的可见性。
以下是定义了层的代码的一部分:
stars = new OpenLayers.Layer.Vector("stars", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "textfile.txt",
format: new OpenLayers.Format.Text()
})
});
home = new OpenLayers.Layer.Vector("home", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "textfile1.txt",
format: new OpenLayers.Format.Text()
})
});
map.addLayers([stars, home]);
Hers是html代码的一部分:
<ul>
<li class="ls_sivi"> <input type="checkbox" value="1" style="width:auto"><label>stars</label></li>
<li class="ls_sivi"><input type="checkbox" value="2" style="width:auto"><label>home</label></li>
</ul>`
与jQuery相比:
$(document).ready(function(){
var sloj = new Array();
sloj[1]=stars;
sloj[2]=home;
$('.ls_sivi input[type="checkbox"]').change(function(){
var vri = $(this).val();
if($(this).is(":checked")){
sloj[vri].setVisibility(true);
return
}
sloj[vri].setVisibility(false);
});
});
我得到:
"sloj[vri].setVisibility"不是函数。
我该如何解决这个问题,因为我有更多的层,这将是最简单的方法?
使用:
map.getLayer(sloj[vri].id).setVisibility();