Мне нужно добавить append 10 div-тегов к другому, но мне нужно подождать случайное время до добавления каждого из них, примерно так:
function start()
{
for (var i= 0; i< 10; i++)
{
var time = generateRandomWaitingTime();
sleep(time);
$('#div1').append('<div> div num' + i + '</div>');
}
}
Я пытался реализовать свой собственный сон (время); как здесь, но он не работал со мной, поскольку он висит на любом событии страницы до окончания ожидания (времени)
setTimout() Кажется, именно то, что вы ищете.
Вы должны использовать setTimeout
и закрытие:
//closure
var addElement = function(i){
return function(){
$('#div1').append('<div> div num' + i + '</div>');
};
};
function start() {
for (var i = 0; i < 10; i++) {
var time = generateRandomWaitingTime();
setTimeout(addElement(i), time);
}
}
Живая демонстрация: http://jsfiddle.net/JaR34/
Живая демонстрация: http://jsfiddle.net/JaR34/1/
попробуй это:
var elements = [1000,2000,3000,4000,5000,6000,7000];
function generateRandomWaitingTime(){
//will give you random index
var index = Math.floor((Math.random()*elements.length));
return (elements[index]);
}
function appendDiv(i){
var time = generateRandomWaitingTime();
setTimeout(function () {
$('#div1').append('<div> div num' + i + '</div>');
}, time);
}
for (var i = 0; i < 10; i++) {
appendDiv(i)
}
рабочая скрипка здесь: http://jsfiddle.net/6neFA/1/