Этот код должен переключать свойство отображения всех дочерних элементов # слайд-контейнера на «блокировку» с задержкой по времени между переключателями с задержкой по времени.Неопределенная переменная JavaScript в анонимной функции
var magic = window.setInterval(function(){
if (document.readyState === "complete") {
var children = document.getElementById('slide-container').children;
for (var i = 0; children.length > i; i++) {
setTimeout(function(){
children[i].style.display = "block";
console.log(i);
},2000);
}
magic = window.clearInterval(magic);
} else {
console.log("...");
}
}, 1000);
Я использую его вместе с этим HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
</head>
<body>
<ul id="slide-container">
<li style="display: none;"><img src="http://i.imgur.com/8qBcyzc.jpg"></li>
<li style="display: none;"><img src="http://i.imgur.com/oxMTFTF.png"></li>
<li style="display: none;"><img src="http://i.imgur.com/JTM6Yqg.jpg"></li>
</ul>
</body>
</html>
Я получаю ошибку Uncaught TypeError: Cannot read property 'style' of undefined
Он говорит, что не может найти детей или детей [0]. Но эта переменная указана и существуют dom-узлы.
Отметьте здесь http://stackoverflow.com/questions/1451009/javascript-infamous-loop-problem – elclanrs
Возможный дубликат [Закрытие Javascript внутри петель - простой практический пример] (http://stackoverflow.com/questions/750486/javascript-clos-inside-loops-simple-practice-example) –