我正在尝试每隔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);
}
答案 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
。