2014-01-08 33 views
0

我想爲每個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); 

我在做什麼錯,如何解決?

回答

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>';