2014-01-08 2 views
0

Я хочу добавить карту листов для каждого элемента объекта JSON, но журнал ошибок говорит, что не может найти контейнер для карты.Ошибка добавления карты в контейнер для каждого цикла.

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>'; 
Смежные вопросы