我的定时交通信号灯程序出了什么问题
What's going wrong with my timed Traffic Lights program?
我不知道为什么,因为它似乎都是正确的,并且控制台中没有错误。它总是从绿色开始.png并停留在那里?我正在尝试制作一个定时交通灯序列,该序列可以在没有按钮的情况下加载页面后立即启动。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>Traffic Lights Program</h2>
<div class="light"><img src="Blank.png" style="width:100px;height:228px;"/></div>
<script>
trafficLight = "green";
var trafficLights = ["Red.png","RedYellow.png","Yellow.png","Green.png"]
function green() {
document.images[0].src = trafficLights[3];
}
function yellow() {
document.images[0].src = trafficLights[3];
}
function redYellow() {
document.images[0].src = trafficLights[1];
}
function red() {
document.images[0].src = trafficLights[0];
}
function yellow2() {
document.images[0].src = trafficLights[2];
}
function automatic() {
if (trafficLight = "green") {
setTimeout(green(),500)
var trafficLight = "yellow";
} else if (trafficLight = "yellow") {
setTimeout(yellow(),500)
var trafficLight = "redYellow";
} else if (trafficLight = "redYellow") {
setTimeout(redYellow(),500)
var trafficLight = "red";
} else if (trafficLight = "red") {
setTimeout(red(),500)
var trafficLight = "yellow2";
} else {
setTimeout(yellow2(),500)
var trafficLight = "green";
}
}
setInterval(automatic(),1000)
</script>
</body>
</html>
您的任何条件都没有按预期方式执行,因为它们是使用赋值运算符"="而不是比较运算符"=="设置的。
我已经清理了一下你的代码:
function automatic() {
if (trafficLight == "green") {
setTimeout(green,500);
trafficLight = "yellow";
} else if (trafficLight == "yellow") {
setTimeout(yellow,500);
trafficLight = "redYellow";
} else if (trafficLight == "redYellow") {
setTimeout(redYellow,500);
trafficLight = "red";
} else if (trafficLight == "red") {
setTimeout(red,500);
trafficLight = "yellow2";
} else {
setTimeout(yellow2,500);
trafficLight = "green";
}
}
var interval = setInterval(automatic,1000);
- 不要多次使用
var
重新声明变量。 - 对语句使用
==
运算符。 - 如果使用命名函数作为处理程序,请不要使用括号
()
。
这正在工作和测试。 包含所有以前的评论。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>Traffic Lights Program</h2>
<div class="light"><img src="Blank.png" style="width:100px;height:228px;"/></div>
<script>
trafficLight = "green";
var trafficLights = ["Red.png","RedYellow.png","Yellow.png","Green.png"]
function green() {
document.images[0].src = trafficLights[3];
}
function yellow() {
document.images[0].src = trafficLights[3];
}
function redYellow() {
document.images[0].src = trafficLights[1];
}
function red() {
document.images[0].src = trafficLights[0];
}
function yellow2() {
document.images[0].src = trafficLights[2];
}
function automatic() {
if (trafficLight == "green") {
setTimeout(green(),500);
trafficLight = "yellow";
} else if (trafficLight == "yellow") {
setTimeout(yellow(),500);
trafficLight = "redYellow";
} else if (trafficLight == "redYellow") {
setTimeout(redYellow(),500);
trafficLight = "red";
} else if (trafficLight == "red") {
setTimeout(red(),500);
trafficLight = "yellow2";
} else {
setTimeout(yellow2(),500);
trafficLight = "green";
}
}
setInterval(automatic,1000);
</script>
</body>
</html>
相关文章:
- 我不知道我的编码有什么问题.(JavaScript)
- 我的流星路线出了什么问题
- 此nodeValue替换代码有什么问题
- 这个正则表达式的日期/时间有什么问题
- 我的CSS/Javascript下拉菜单测试代码出了什么问题
- 这个代码出了什么问题?(Jquery)
- 下面的Reg表达式出了什么问题
- 鼠标事件,我的代码出了什么问题
- 这个javascript语法有什么问题
- 动态创建foreignGroup并将其添加到svg中有什么问题
- 此代码中动态生成选择框有什么问题
- 我的javascript有什么问题?.className
- 这个 ajax.js 代码有什么问题
- JS代码有什么问题,让我知道代码是否可以改进
- 我的 Browserify JavaScript 代码有什么问题
- 图像上传功能将++(+1)副本添加到下一次上传.出了什么问题或如何重置“选定图像”
- 使用 Javascript 动态删除行.我的代码有什么问题
- AngularJS:这个注入我的控制器有什么问题
- 这个jQuery if语句有什么问题
- JavaScript:有人能告诉我我的代码出了什么问题吗?