每3秒创建一次

时间:2015-11-30 20:27:04

标签: javascript

我正在尝试每隔3秒创建一次元素我正在使用setTimeOut函数,但是当我运行代码时,3秒后它就会发送脚本并创建大量元素而不是每3秒创建一个元素。

window.setTimeout(function() {
    var elementDiv = document.createElement("div");
    elementDiv.className = "chat-message error";
    elementDiv.appendChild(document.createTextNode(chatBoxMessage));
    document.getElementById('message-window').appendChild(elementDiv);
},3000);

- 更新的完整代码及修正案

function chatAlert () {
setInterval(function() {
    var elementDiv = document.createElement("div");
    elementDiv.className = "chat-message error";
    elementDiv.appendChild(document.createTextNode(chatBoxMessage));
    document.getElementById('message-window').appendChild(elementDiv);
},3000);

}

2 个答案:

答案 0 :(得分:3)

您应该使用setInterval

setInterval(function() {
    var elementDiv = document.createElement("div");
    elementDiv.className = "chat-message error";
    elementDiv.appendChild(document.createTextNode(chatBoxMessage));
    document.getElementById('message-window').appendChild(elementDiv);
},3000);

setTimeout引入了执行回调的延迟,而setInterval在每个特定时间间隔后执行回调。

答案 1 :(得分:2)

setTimeout只执行一次。您想要使用setInterval