我在学校做 JavaScript 已经有大约 3 个星期了,是的,这是类(class)作业,但我们的时代即将结束,我会因为工作代码而得到更多的分数,而不是因为寻求帮助而失去的分数。
我编写了这段代码来运行交通灯序列,并且最近添加了 on load 函数以及 setinterval。基本上它不起作用,而且只做了三个星期的JavaScript,我不知道它是语法错误还是逻辑错误。有人会告诉我出了什么问题并提供尽可能接近我当前代码的解决方案吗?
编辑:当我当前运行此程序时,交通灯显示为红色,但永远不会改变,而且它必须没有用户交互才能获得最多分数。
<!DOCTYPE html>
<html>
<body onload="javascript:timer()">
<h1>JavaScript Task 3</h1>
<img id="traffic" src="Red.jpg">
<script>
var list = [
"Red.jpg",
"Red-Amber.jpg",
"Green.jpg",
"Amber.jpg"
];
var index = 0;
function changeLights() {
index = index + 1;
if (index == list.length)
index = 0;
var image = document.getElementById('traffic');
image.src=list[index];
}
function timer(){ = setInterval(changeLights(),1000);
}
</script>
</body>
</html>
最佳答案
你的定时器函数错误,应该是:
function timer(){
setInterval(changeLights,1000);
}
我删除了“=”,并且changeLights后面不应该有括号。
关于javascript - 页面加载定时器上的红绿灯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586937/