javascript - 简单的 OpenLayers 函数在 jQuery 函数中不起作用

标签 javascript jquery openlayers

我想通过按钮更改 OpenLayers 图层的可见性(以及其他一些内容)。当我通过 jQuery 在按钮单击事件上调用 anyLayer.setVisibility("true") 时,它正在工作:

$("#anyLayer_button").click(function(){
    anyLayer.setVisibility("true");
}

但是当我想使用高级 jQuery 函数对许多层执行此操作并因此使用变量调用 Ol 层时,firebug 告诉我“anyLayer.setVisibility 不是函数”。

function superiorFunction(anylayer) {
    $("#" + anyLayer + "_button").click(function(){
        anyLayer.setVisibility("true");
        otherFunction1(anyLayer);
        otherFunction2(anyLayer);
    });
}

其他(jQuery)函数在该函数内工作没有任何问题。 如何解决这个问题?

最佳答案

我感觉您将错误的参数传递给了第二个函数:

function superiorFunction(anylayer) {
    $("#" + anyLayer + "_button").click(function(){
        anyLayer.setVisibility("true");
        otherFunction1(anyLayer);
        otherFunction2(anyLayer);
    });
}

如果您传递的 anylayer 参数是字符串,则 anyLayer.setVisibility("true"); 会导致错误,因为字符串没有 setVisibility() 方法...

我认为您真正想要的是一个采用图层名称(用于构造按钮的 id 来注册事件)和图层本身的函数:

function superiorFunction(anyLayer_name, anyLayer) {
    $("#" + anyLayer_name + "_button").click(function(){
        anyLayer.setVisibility("true");
        otherFunction1(anyLayer);
        otherFunction2(anyLayer);
    });
}

关于javascript - 简单的 OpenLayers 函数在 jQuery 函数中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24329951/

相关文章:

javascript - 无法在两个 Python aiortc 脚本之间完全建立 ICE 连接

javascript - OL-Cesium - 来自 services.arcgisonline.com 的源 map

javascript - 如何使用图像填充 OpenLayers 中的图层?

javascript - 如何从 OpenLayers 中获取 map 的当前视口(viewport)作为几何体、边界框或 wkt?

javascript - 使用 Chrome 扩展将 jQuery 注入(inject) Google.com

javascript - JS中的OOP,this.init.apply如何与OOP一起工作

javascript - 当我再次搜索时,JavaScript 中的表中出现重复行

javascript - WordPress 中链接 php 和 javascript 错误

javascript - ComponentDidMount 不起作用 - Prop 不传递给子组件

jquery - 画廊自动播放幻灯片?