Задать вопрос
@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 раз.
Нужно обязательно включать интервал через функцию, где как параметр передаётся блок див в котором и выводятся числа.
  • Вопрос задан
  • 2086 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 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, в 16:13
50000 руб./за проект
23 дек. 2024, в 15:25
5000 руб./за проект
23 дек. 2024, в 14:47
4500 руб./за проект