Я не знаю, почему, как кажется, все правильно, и в консоли нет ошибок. Он всегда начинается на green.png и остается там? Я пытаюсь сделать последовательность синхронизированного светофора, которая может начинаться, как только страница загружается без кнопки.Что происходит с моей программой Traffic Lights?
<!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>
Вы '' вместо '==' в если заявления =. Затем вы объявляете каждый «trafficLight» локальной переменной. –
Кроме того, вы не должны повторно объявлять trafficLight внутри каждого из ваших операторов if. Итак, первый, например, должен читать 'if (trafficLight ==" green ") {setTimeout (green(), 500); trafficLight = "yellow"; ' – jmcgriz