Почему все отображается сразу, используя 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]

Ответы на вопрос(2)

Ваш ответ на вопрос