Top.Mail.Ru
Ответы

Не корректно работает clearInterval(js)

Вот упрощённый вариант моего кода:
1)function sizeJPG(image) {
2)var timer = function(){
3)var w = image.width;
4)image.style.width = w + 20 + "px";
5)if(image.style.width = "600px"){
6)clearInterval(timer);
7)};
8)};
9)setInterval(timer, 50);
10)};
Функция используется картинкой в HTML документе. По идее ширина картинки, заранее установленная в CSS на 300px, должна плавно увеличиться до 600px, но, почему-то, вместо того, чтобы задавать условие в 5 строке, оно становится значением (то есть, функция мгновенно изменяет ширину с 300 до 600, а только затем уже бесконечно плюсует по 20 пикселей).
Подскажите новичку, в чём проблема?

Дополнен

Извините, не знал, что табуляция тут не принимается. P.S.
function sizeJPG(image) {
var timer = function(){
var w = image.width;
image.style.width = w + 20 + "px";
if(image.style.width = "600px"){
clearInterval(timer);
};
console.log(image.style.width);
};
setInterval(timer, 50);
};

По дате
По рейтингу
Аватар пользователя
Новичок
9лет

Некорректно используется clearInterval. Как параметр он принимает только идентификатор запущенного setInterval (этот setInterval при запуске возвращает идентификатор), но никак не функцию

Аватар пользователя
Просветленный
9лет

image.style.width = "600px" - функция мгновенно изменяет ширину с 300 до 600

Аватар пользователя
Гуру
9лет

надо было бы писать timer=setinterval(sfdsdfa...,12100)

Аватар пользователя
9лет

в условии ошибка. Пропущен знак равенства: if (image.style.width== и . д.

Аватар пользователя
Знаток
9лет

Говнокод)) нафига засовывать переменную функцию не проще ли назвать её и вызывать вместо таймера? if (1 == 2 а не 1 = 2)
var timer1 = setTimeout(func1, 2000);
clearTimeout(timer1);