Показать сообщение отдельно
  #1 (permalink)  
Старый 25.07.2015, 23:46
Аспирант
Отправить личное сообщение для pifon Посмотреть профиль Найти все сообщения от pifon
 
Регистрация: 17.07.2013
Сообщений: 46

jQuery .load внутри .each
Всем привет!

Прошу помощи в следующей задаче:

Есть такой код:

function someFunc() {

  var i = 1,
      h = 10;

  $('#container .item').each(function(){

    var $t = $(this).children('img');
    
    $t.load(function(){
      /* не очень быстро загружает немаленькую картинку */
      h = h + $t.height();
    });
    
    i++;
    
  });

  $('#id').css({height : h});

}


Получается, что скрипт пробегается по всем элементам .item, просчитав от 1 до N, где N - число элементов .item моментально. А потом уже поочерёдно выполняет функцию .load. Выходит, что элементу #id присваивается высота h = 10. А нужно, чтобы высота присваивалась та, которая записывается в h после прохода по всем .item и загрузки всех img внутри .item.

Как решить данную загрузку? Логично, что нужно запретить циклу .each двигаться дальше, пока не закончится .load, но как?

Спасибо всем заранее!

Последний раз редактировалось pifon, 26.07.2015 в 00:00.
Ответить с цитированием