У меня внутри события через setTimeout вызываются функции.
Работающий пример:
document.querySelector('#shag3').addEventListener('click', function () {
setTimeout(brus1, 400);
setTimeout(brus2, 800);
setTimeout(brus3, 1200);
setTimeout(brus4, 1600);
setTimeout(brus5, 2000);
setTimeout(brus6, 2400);
setTimeout(brus7, 2800);
setTimeout(brus8, 3200);
setTimeout(brus9, 3600);
setTimeout(brus10, 4000);
setTimeout(brus11, 4400);
setTimeout(brus12, 4800);
setTimeout(brus13, 5200);
setTimeout(brus14, 5600);
setTimeout(brus15, 6000);
setTimeout(brus16, 6400);
setTimeout(brus17, 6800);
setTimeout(brus18, 7200);
setTimeout(brus19, 7600);
setTimeout(brus20, 8000);
)}
Это урезанный вариант, на самом деле у меня setTimeout в разных обработчиках событий от 50 до 400 штук.
Поэтому я пытаюсь сделать это циклом и делаю так:
document.querySelector('#shag3').addEventListener('click', function () {
for (let i = 0; i < 50; i++) {
let name_function = 'brus' + i;
let time;
if(i == 0) time = 10;
else time = 400 * i;
setTimeout(name_function, time);
console.log(name_function + ' и ' + time);
}
)}
но это не работает - функции из setTimeout не вызываются : (
При этом в console.log выводятся правильные значения.
Поэтому у меня вопрос: а можно ли применять setTimeout внутри цикла?