我想一个一个地显示存储在数组中的字符串的字符。 当我使用以下代码调用 threadsleep(a) 时:http://jsfiddle.net/thefiddler99/re3qpuoo/ ,它一下子出现了。 我想问题就出在这里
for (var i = 0; i < str.length; i++) {
$('#hello').append(str[i])
alert("foo")
sleep(500)
};
警报显示一切正常,除了每个之间的间隔不存在。
我不知道为什么。
注意: sleep 是我定义的一个函数,它在设定的时间量内工作
最佳答案
JavaScript 是单线程的。您的 while 循环太忙了,无法执行页面重绘。
不要尝试编写休眠函数。该语言不适合它,它只会消耗 CPU。改写您的代码以使用 setInterval
或 setTimeout
。
var i = 0;
next();
function next() {
$('#hello').append(str[i]);
i++;
if (i < str.length) {
setTimeout(next, 500);
}
}
关于javascript - 附加到空元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25698804/