我的定时交通灯程序出了什么问题?

编程入门 行业动态 更新时间:2024-10-25 16:20:03
本文介绍了我的定时交通灯程序出了什么问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我不知道为什么因为它似乎都是正确的并且控制台中没有错误。它总是从green.png开始并停留在那里?我试图制作一个定时的交通信号灯序列,只要页面没有按钮就可以启动。

I don't know why as it seems to be all correct and there are no errors in console. It always starts on green.png and stays there? I'm trying to make a timed traffic lights sequence that can start as soon as the page is loaded without a button.

<!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>

推荐答案

/ b>

I've cleaned up your code a bit:

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 多次。
  • 对于语句使用 == 运算符。
  • 如果使用命名函数作为处理程序,请不要使用括号()。
  • Don't redeclare vars with var multiple times.
  • Use the == operator for statements.
  • Don't use brackets () if you using a named function as handler.
  • 更多推荐

    我的定时交通灯程序出了什么问题?

    本文发布于:2023-10-30 11:34:55,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1542736.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:交通灯   出了   什么问题   程序

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!