我有以下代码:
function list() {
return "blob1<br>blob2<br>blob3";
}
运行此代码时,它会在函数调用中直接显示return
中的整个文本。
有没有办法让它显示blob1
,然后等待0.5秒,然后显示blob2
,再过0.5秒后显示blob3
?
答案 0 :(得分:1)
我就是这样做的:
var stack = ["blob1", "blob2", "blob3"];
function nextItem() {
document.body.innerHTML += stack.shift() + "<br>";
}
nextItem();
setTimeout(nextItem, 500);
setTimeout(nextItem, 1000);
&#13;
答案 1 :(得分:0)
您可以使用setTimeout
来延迟执行某项功能:
var text = ["blob1", "blob2", "blob3"],
target = document.getElementById('target');
(function display() {
if(!text.length) return;
target.textContent = text.shift();
setTimeout(display, 500);
})();
<div id="target"></div>
答案 2 :(得分:0)
function list(num) {
return "blob" + num;
}
var num = 1;
setInterval(function(){
list(num);
num ++;
}, 500);
所以这段代码每半秒调用一次list函数并发送一个数字。每次运行间隔时,数字都会增加1。
list函数每隔半秒就会返回blob1,blob2,blob3,blob4,blob5等。
检查jsfiddle并打开控制台以查看结果。
另外,我假设您正在使用此字符串进一步做些事情。现在它没有被显示在任何地方。
并且,如果你只想要它转到3,你可以添加一个检查以消除num到达3时的间隔。