Bil*_*ris 3 javascript jquery function leaflet
我认为这意味着我缺少有关javascript中嵌套函数工作的一些基本知识,但是我无法使用click函数从传单地图中添加或删除图层。具体来说,我有一个传单地图,其中定义了许多矢量层。这些图层之一将在页面加载时添加到地图,然后应该在图层选择器中的click事件上加载后续图层。
这是处理单击的函数,然后更新侧边栏图例,更新层选择器中的类,并应更新可见层:
// ADD THE LAYER CONTROL FUNCTION
$('.layer').click(function() {
var oldLayer = $('.active').attr('id');
var newLayer = $(this).attr('id');
console.log(oldLayer + ' --> ' + newLayer);
$('#infobits').html('<h2>' + this.text + '</h2><hr>' + legendFormatter(
this.id));
map.removeLayer(oldLayer);
$('.layer').removeClass('active');
$(this).addClass('active');
map.addLayer(newLayer);
});
Run Code Online (Sandbox Code Playgroud)
每当我单击一个新层时Uncaught TypeError: undefined is not a function,无论将函数放在哪里(甚至在.getJSON()调用中都放了一点)都可以。令人困惑的是,我在浏览器中转到JS控制台,并逐字键入函数在上面脚本(map.removeLayer(Percent_TC_bg))的第49行上生成的内容,该地图删除了相关图层。
我该怎么做才能使地图正确地添加和删除图层?
我想TypeError里面抛出addLayer或removeLayer。Map#addLayer和#removeLayer接受ILayer对象作为参数,但oldLayer和newLayer显然String,这直接来自HTML元素的ID属性。
因此,我想改变oldLayer和newLayer欣赏ILayer物体会解决问题。