BanterFace
@BanterFace
jack of all trades, master of none

Проблемы с setTimeout?

У меня есть
function getRandWpoint() {
			WP1 = $($('#Welcome_points>.Wpoint')[Math.floor(Math.random() * $('#Welcome_points>.Wpoint').length)]);
		}

, которое выводит мне случайный объект из dom, соответствующий параметрам.

У меня есть
setInterval(
		function() {
			getRandWpoint();
			console.log(WP1);
			WP1.addClass('a1');
			console.log(WP1);
			WP1.addClass('b1');
			console.log(WP1);
			setTimeout(function(){WP1.addClass('a2'); WP1.addClass('b2');}, 5000);
			console.log(WP1);
			setTimeout(function(){WP1.removeClass('a1').removeClass('b1').removeClass('a2').removeClass('b2')}, 1000);
			console.log(WP1);
		}, 10000);

, которое ставит этому случайному элементу классы а1 и b1, через 5 секунд a2 и b2, а через секунду удаляет все эти 4 класса. Точнее, оно должно так делать, а по факту оно только ставит a1 и b1. Пожалуйста, скажите, что я делаю не так?
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ваша функция не добавляет классы a2 и b2 и не удаляет классы. Она запускает таймеры, по истечению которых это делается.
В результате у вас написано следующее:

-- При вызове функции:
Добавить классы a1 и b1
Установить таймер, который через пять секунд добавит классы a2 и b2
Установить таймер, который через секунду удалит классы a1, b1, a2 и b2

-- Через секунду:
Удалить классы a1, b1, a2 и b2.

-- Через пять секунд:
Добавить классы a2 и b2
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы