@timtimIT

Есть ли ошибка в коде,(нужно чтобы каждые пять секунд менялось фоновое изображение боди)?

Здоавствуйте.

Подскажите, есть ли ошибка в коде (нужно чтобы каждые пять секунд менялось фоновое изображение боди)?

Есть код.

Не совсем понимаю правильно ли поставил setInterval.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
IgorBee
@IgorBee
JS,VBS,3D.Web с 07.2015
  1. В вашем цикле for запускаются 3 setInterval() одновременно.

    for (var i = 0; i < pictures.length; i++){
    
       setInterval(function(){  
          $('body').css("background",pictures[i]);},5000);
       }
    }



  2. Внутри цикла используется переменная i, которая передаётся внутрь анонимной функции, то есть это замыкание.

Согласно логике работы замыканий, значение этой переменной внутри анонимной функции будет равно значению, которое оно принимает по окончании работы цикла, то есть всегда 3.

Алгоритм можно реализовать несколькими способами, но проще всего использовать один интервал и в каждой итерации этого интервала инкрементировать счётчик.


Рабочий код с описанием
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alsopub
@alsopub
Почитайте про setTimeout / setInterval
Ответ написан
Ваш ответ на вопрос

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

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