@DarCKoder

Почему setInterval срабатывает только один раз?

Есть код:
var asd = document.getElementById("asd");
var dsa = 0,
	 numInterval;

function intervalFunc(div){
	numInterval = setInterval(funcForInterval(div),500)
}

function funcForInterval(div){
	var randNum = getRandomNum(1,9);
	var innerDiv = document.createElement('div');
	innerDiv.innerHTML = randNum;
	div.appendChild(innerDiv);
	dsa++;
	if(dsa >= 10){
		clearInterval(numInterval);
	}
}
intervalFunc(asd);


Срабатывает интервал только 1 раз.
Нужно обязательно включать интервал через функцию, где как параметр передаётся блок див в котором и выводятся числа.
  • Вопрос задан
  • 2085 просмотров
Решения вопроса 2
@nodaberg
Еще как вариант сделать обертку
numInterval = setInterval( function(){
    funcForInterval(div);
  }, 500 )
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Сейчас вы вызываете функцию funcForInterval сразу и в setInterval передаётся результат её выполнения. Нужно делать так:
numInterval = setInterval(funcForInterval.bind(null, div),500)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект