Я пытаюсь сделать последовательность светофора так, что когда я нажимаю кнопку «change lights», она должна меняться каждый раз, когда она была нажата. Тем не менее, я сделал код, появляющийся с красным светом, но когда я нажимаю кнопку «change lights», он не будет изменяться на янтарный и другой световой последовательности.Как переключить свет на последовательность светофора?
<!DOCTYPE html>
<html>
<body>
<h1>Traffic Light</h1>
<button type="button" onclick="changeLights"()>Change Lights </button>
<script>
var traffic_light = new Array(3)
var traffic_lights = 0
function lights(){
traffic_light = new Image(500,800)
traffic_light.src = "traffic_light_red.jpg";
traffic_light = new Image(500,800)
traffic_light.src = "traffic_light_redAmb.jpg";
traffic_light = new Image(500,800)
traffic_light.src = "traffic_light_green.jpg";
traffic_light = new Image(500,800)
traffic_light.src = "traffic_light_amber.jpg";
}
function changeLights() {
document.traffic_light_images.src = traffic_light[traffic_lights].src
traffic_lights++
if(traffic_lights > 3) {
traffic_lights = 0;
}
}
</script>
<img src = "traffic_light_red.jpg" name "traffic_light_images" height = "500" width = "800">
</body>
</html>
'Ваш массив начинается с 0, поэтому такая проверка должна быть traffic_lights> = 3' Это не должно быть'> 3'? –
Число приращений перед проверкой, действительные элементы находятся на '0,1,2' - на' 3' индекс уже выходит за пределы. Итак, на 'array [2]' then increment to '3' он должен быть сброшен до' 0' (в моем примере я добавил зеленый свет, поэтому он '> = 4') –
В коде OP также будет 4 элемента, если бы он правильно вставил элементы в массив. –