2016-11-14 2 views
1

Also, ich habe JavaScript in der Schule seit etwa 3 Wochen, und ja das ist Kursarbeit, aber wir kommen bis zum Ende unserer Zeit, und ich werde mehr Noten für Arbeitscode bekommen Dann verliere ich, weil ich um Hilfe gebeten habe. Also habe ich diesen Code geschrieben, um die Ampel Sequenz durchlaufen, und vor kurzem die On-load-Funktion, sowie setinterval hinzugefügt. Grundsätzlich funktioniert es nicht, und nachdem ich nur drei Wochen lang JavaScript ausgeführt habe, weiß ich nicht, ob es ein Syntaxfehler oder Logik ist, wenn Sie mir einfach sagen könnten, was falsch ist und eine Lösung anbieten, die meinem aktuellen Code so nahe wie möglich kommt Lasten, danke. Edit: Wenn ich dies derzeit ausführen, wird die Ampel als rot angezeigt, aber ändert sich nie, auch muss es keine Benutzerinteraktion haben, um die meisten Marken zu erhalten, danke.Ampeln an einem Timer von pageload

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

Für die Zukunft, drücken Sie die Taste F12, während der Browser geöffnet ist und konzentriert, und dies wird die Entwicklerkonsole öffnen. Im obigen Code würde die Konsole einen SyntaxError zeigen, dass das Zeichen = unerwartet verwendet wurde (zB an der falschen Stelle), so dass Sie einen Hinweis darauf haben könnten, wo das Problem war – danwellman

+1

danke, ich startete es dann in Firefox verwendet diesen Debugger, aber es war nicht sehr spezifisch –

Antwort

0

Ihre Timer-Funktion ist falsch, sollte es ersetzen:

function timer(){ 
setInterval(changeLights,1000); 
} 

ich die '=' entfernt und die changeLights sollte nicht habe Klammern danach.

0

die Timer-Funktion mit

var traficTimer = null; 
function timer(){ 
traficTimer= setInterval(changeLights(),1000); 
} 
0
function timer(){ 
setInterval(changeLights,1000); 
} 
0

Wie Maurice Buiten vorgeschlagen, müssen Sie setIntervel anstelle von setTimeOut verwenden. Überprüfen Sie das Blasfunktions-Code-Snippet.

</head> 
<body onload="timer()"> 
<img id="traffic" src="Red.jpg"> 

<script> 
// global variables 
var list = ["Red.jpg","Red-Amber.jpg", "Green.jpg","Amber.jpg"]; 
var index = 0; 

// funnction for changing lights 
function changeLights(){ 
    index = index + 1; 
    if (index == list.length){ 
     index = 0; 
    }  
    var image = document.getElementById('traffic'); 
    image.src=list[index]; 
} 

// time out function 
function timer(){ 
    setInterval(function(){ 
     changeLights(); 
    }, 1000); 
} 
</script> 
</body> 

Verwandte Themen