问题为每个循环添加到容器的映射。

时间:2014-01-08 15:12:37

标签: javascript jquery map each leaflet

我想为每个JSON对象的元素添加Leaflet映射,但错误日志表示无法找到地图的容器。

 success:
 $.each(json, function(i, data) {
 newhtml +='<div class="info">'+data.info+'</div>=<div class="story_map" id=story_map'+data.post_id+'></div>';

            var container = "story_map"+data.post_id;
            var map = L.map(container, {scrollWheelZoom:false,dragging:false}).setView([50, 50], 3);
            L.tileLayer('http://{s}.tile.cloudmade.com/4bf7e7a40966461892sdfafac6eb4838/997/256/{z}/{x}/{y}.png', {
            maxZoom: 18
            }).addTo(map);
 }

 $('#stream').append(newhtml);

我做错了什么以及如何解决?

1 个答案:

答案 0 :(得分:0)

您声明newhtml方法包含新div,但实际上并未将其添加到页面中 - 在您将其添加到页面之前,您尝试初始化地图。所以基本上将代码中的$('#stream').append(newhtml);移到newhtml之后,而不是将newhtml一起添加到

 newhtml ='<div class="info">'+data.info+'</div>=<div class="story_map" id=story_map'+data.post_id+'></div>';