Javascript 向循环中的文档添加图像
我已经编写了这段javascript代码,以在延迟3秒后添加每个图像,但这段代码不起作用Javascript 向循环中的文档添加图像,javascript,Javascript,我已经编写了这段javascript代码,以在延迟3秒后添加每个图像,但这段代码不起作用 function start() { while(true) { setTimeout(addObstracles(), 3000) } } function addObstracle() { var element = document.createElement('img'); element.id = 'obs';
function start() {
while(true) {
setTimeout(addObstracles(), 3000)
}
}
function addObstracle() {
var element = document.createElement('img');
element.id = 'obs';
element.className = 'obstracleAnimation';
element.src = 'enemy.png';
element.style.position = 'absolute';
element.style.top = '0px';
element.style.left = '100%';
element.style.width = '150px';
element.style.height = '100px';
document.body.appendChild(element);
}
setTimeout
获取函数引用。您有一个函数调用
有多种方法可以写出来:
setTimeout('addObstracles()', 3000) //i don't like this way
setTimeout(addObstracles, 3000) // pass the reference (I like this way!)
setTimeout(function() {
addObstracles()
}, 3000) //I like this when `addObstracles has parameters!
就像Sterling在他的回答中提到的那样,您调用函数
addObstracles
,而不是将其传递给setTimeout
,只是我想补充一点,因为您在固定的时间间隔上设置timout函数,所以可以使用setInterval
函数:
function start() {
setInterval (addObstracles, 3000);
}
此代码存在多个问题。我将补充以下答案:
- 小心你定义的函数和你调用的函数:something!=有些事
- 在调用
函数时要小心:它必须在body标记之后,或者start()
将不存在body.appendChild
- 请注意如何设置元素的样式。对于当前样式,它根本不显示。我刚刚删除了
element.style.position='absolute'代码>以使其可见
- 确保您尝试显示的图像与脚本位于同一文件夹中
setTimeout
调用中调用了addObstracles,该方法不会返回任何内容。是否存在任何开发控制台错误?可能是重复的,他也会调用AddResponsible而不是AddResponsible。@SajalAli检查您的JavaScript控制台,您会看到一些漂亮的红色错误消息,这些消息将帮助您解决无法工作的问题,这会冻结浏览器id
属性的唯一性,您只能将其分配给一个元素,删除element.id='obs'代码>来自您的代码。