如何实现单击JavaScript可重复函数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (32)

我有这个代码,用户单击div ID,Open_Waters代码将geojson添加到地图,将文本更改为Remove Open Waters,然后当用户单击Remove Open Waters时,图层将被删除。

    $("#Open_Waters").click(function(){
        if ($("#Open_Waters").html()=='Open Waters'){
            open_waters.addTo(map);
            $("#Open_Waters").html("Remove Open Waters");
      } else{
            map.removeLayer(open_waters);
            $("#Open_Waters").html("Open Waters");
        }
    });

工作得很好

我的问题:如何用3个参数创建一个函数

1.div id  2.div text 3.geojson layer

我试图像这样制定这个功能

function legend_click(id, id_displayed, layer){
    $("#${id}").click()
        }

我对点击方法功能感到困惑......

id = "#Open_Waters"
id_displayes="Open Waters"
layer=open_waters
提问于
用户回答回答于

这样试试:

function legend_click(id, id_displayed, layer) {
    $(id).click(function () {
        if ($(id).html() == id_displayed) {
            layer.addTo(map);
            $(id).html("Remove " + id_displayed);
        } else {
            map.removeLayer(layer);
            $(id).html(id_displayed);
        }
    })
};
用户回答回答于

.click 是你的事件监听器,所以你想在里面调用你的函数

$("#Open_Waters").click(function(){
    your_new_function(id, id_displayed, layer) ...
});

function your_new_function(id, id_displayed, layer){...

扫码关注云+社区

领取腾讯云代金券