sinneren
@sinneren

Проблема с коллекцией объектов, почему всегда разные значения при обновлении странциы?

Уже задавал вопрос, но иначе тут.
Теперь более конкретно:
Собираю коллекцию объектов
var mgal = $(".menu-gallery img");

Далее мне нужно суммировать их ширину. Но при обновлении страницы это либо происходит с некоторыми объектами, либо нет. То есть, если я обращаюсь к свойству так в цикле:
mgal[i]["clientWidth"]
то результатом будет поочерёдный вывод длин, но у нескольких последних(Всегда разное количество, это может быть 1 объект, может 4) объектов он получает 0.
Однако, тут же я в логи вывожу всю коллекцию сразу в лог и по ID вручную смотрю есть ли данное свойство у объекта и чему оно равно, удивительно, но оно есть и отлично от нуля, имеет реальное значение. Почему так проиcходит? как бороться?

пысы: картинки подргузились, это судя по логам, да и вообще по коду.
Живой пример http://rkkristall.kalentyev.ru/

Сама функция
var mgal = $(".menu-gallery img");
    var iterMgalWidth = 0;
    var itemMargin = 30;
    for(var i = 0; i < mgal.length; i++){
    console.log("#"+i+":"+mgal[i]["clientWidth"]);
    console.log(mgal);
        iterMgalWidth = iterMgalWidth + mgal[i]["clientWidth"] + itemMargin;
        if((iterMgalWidth-itemMargin) >= maxWhCont){
            $(".menu-gallery .gmenu-item").eq(i).css({"margin-right" : 0});
            delete iterMgalWidth;
            iterMgalWidth = 0;
        }
    }
    iterMgalWidth = 0;
  • Вопрос задан
  • 2259 просмотров
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
А вы поди скрипт-то запускаете на DOMContentLoaded, он же $(document)ready(), он же $()?

Подсказка #2:
console.log("#"+i+":"+mgal[i].complete);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы