2016-02-27 28 views
2

我試圖做一個交通燈序列,它自動運行而無需用戶輸入。我現在有了代碼工作,但它只運行一次然後停止。那麼,我該如何改變這一點,以便繼續下去? 這裏是我的代碼:如何爲我的交通燈序列做一個連續的循環javascript?

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
      var images = new Array() 
      images[0] = "image2.jpg"; 
      images[1] = "image3.jpg"; 
      images[2] = "image4.jpg"; 
      setInterval("changeImage()", 3000); 
      var x=0; 

      function changeImage() { 
       document.getElementById("img").src=images[x] 
       x++; 
      } 
     </script> 
    </head> 
    <body> 
     <img id="img" src="image1.jpg"> 
    </body> 
</html> 
+3

只是注意:不要使用字符串'setInterval'但寫'的setInterval(changeImage,3000);'代替。 –

回答

3

應用其餘分配%=與數組的長度計數器。

function changeImage() { 
    document.getElementById("img").src = images[x]; 
    x++; 
    x %= images.length; 
} 
+0

或作爲一個單行:'x =(x + 1)%images.length;' –

+0

感謝,似乎現在工作得很好。 –

+1

@ t.niese&Nina:不知道我在想什麼。還有另外一個你不需要這些parens的成語,但這顯然不是它。感謝您舉報。 (編輯:我記得:我把它混合起來的另一個習慣是用於基於1的計數器,因爲當然在這種情況下,我們首先需要'%':'n = n%inclusiveMax + 1'。) –