Вход

Просмотр полной версии : Chrome и IE не видят переменную внутри animate.


Broken
23.11.2012, 08:19
Впервые столкнулся с подобным, есть примерно такой код:


var anim = function () {
var i = 0;
var Arr = $('#someid').children('img');
$(Arr).each(function () {
$(this).animate({
'width': W+'px',
'height': H+'px',
}, 1000, "swing");
i++;
});
}



Браузеры Chrome и IE не хотят выполнять, причем если написать так, все ок:

$(this).animate({'width': '100px',




В Opera, Firefox все нормально.
Что это может быть?

Sanda
23.11.2012, 10:03
Вставить перед запуском animate строки alert(W + 'px') и alert(H + 'px'), посмотреть, чему равны эти строки. Чудес не бывает (:
Кстати, а 'px' обязательно добавлять? jQuery, вроде, по умолчанию их приписывает к числам.
$(Arr) - лишнее, Arr - это уже jQuery-элемент, можно сразу Arr.each.

Tek
23.11.2012, 12:51
Вставить перед запуском animate строки alert(W + 'px') и alert(H + 'px'), посмотреть, чему равны эти строки. Чудес не бывает (:
Кстати, а 'px' обязательно добавлять? jQuery, вроде, по умолчанию их приписывает к числам.
$(Arr) - лишнее, Arr - это уже jQuery-элемент, можно сразу Arr.each.
Обязательно, иногда без px свойства не срабатывают.

Broken ищи где отваливаются W и H alert ом как найдешь отпишись..

Broken
24.11.2012, 03:20
Спасибо всем.

Терялось еще в той функции, откуда был вызов, причем по разным причинам для “Chrome” хватило обработчика: load, а “IE” упорно не хочет видеть размеры изображений в скрытом div.

Отсюда вопрос: если у div стоит display:none;, а внутри лежат некие изображения, можно ли получить их реальные размеры в браузере “IE”

Делал так:

//во всех браузерах 0
this.width();
this.height();


И так:

//работает везде, кроме IE
this.width
this.height


Или вообще забить на это и сделать иначе?