Почему все отображается сразу, используя setTimeout в Javascript?
Я пытаюсь сделать несколько вещей прокручивать экран вниз в javascript, однако, после выполнения, он просто говорит немного и отображает все сразу. Так что это не проясняется с$("#Menu").html('')
функция иsetTimeout(function {},500)
просто устанавливает время ожидания для всей страницы вместо сегмента кода.
var MenuData = [
{'Name':'pictures','x':'30'},
{'Name':'blog','x':'50'},
{'Name':'contact','x':'42'}
]
;
var PositionArray = new Array();
$(document).ready(function () {
for (var count = 0; count < 1000; count++) {
$("#Menu").html('');
if (PositionArray[count] != null) {
PositionArray[count]++;
} else {
PositionArray[count] = 0;
}
setTimeout(function () {
for (var i in MenuData) {
$("#Menu").append('<div style="position:relative; left:' + MenuData[i].x + 'px; top:' + PositionArray[i] + 'px; ">123</div>');
}
}, 500);
}
});
Вот скрипка:http://jsfiddle.net/LbjUP/
Изменить: В коде была небольшая ошибка, которая не относится к вопросу. Вот новый:http://jsfiddle.net/LbjUP/1/Я просто переместил PositionArray [count] в функцию setTimeout как PositionArray [i]