Как исправить ошибку ,чтобы код работал
Выскакивает ошибка "Uncaught RangeError: Maximum call stack size exceeded"
function yey() {
let count = 0;
let dv = document.querySelectorAll('.dv')
if (count < dv.length) {
dv[count].classList.add('visible')
count++
let time = setTimeout(yey(), 1000)
} else {
clearTimeout(time)
}
}
.dv { display: none; }
.visible { display: block; }
<button class='butt' onclick='yey()'>Button</button>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
<div class="dv">eeeeeee</div>
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
setTimeout(yey(), 1000)
^^ - calling, not passing reference
let count = 0;
function yey() {
...
setTimeout(yey, 1000);
let count = 0;
function yey() {
let dv = document.querySelectorAll('.dv')
if (count < dv.length) {
dv[count++].classList.add('visible')
setTimeout(yey, 300)
}
}
.dv { display: none; }
.visible { display: block; }
<button class='butt' onclick='yey()'>Button</button>
<div class="dv">eeeeeee 1</div>
<div class="dv">eeeeeee 2</div>
<div class="dv">eeeeeee 3</div>
<div class="dv">eeeeeee 4</div>
<div class="dv">eeeeeee 5</div>
<div class="dv">eeeeeee 6</div>
<div class="dv">eeeeeee 7</div>
<div class="dv">eeeeeee 8</div>
<div class="dv">eeeeeee 9</div>
<div class="dv">eeeeeee 10</div>