2016-04-14 45 views
1

我正在創建一個練習程序,其中按鈕在交通燈中的不同圖片之間交替顏色。但是,當我點擊按鈕時,什麼也沒有發生。陣列/ HTML中的函數

HTML:

<!DOCTYPE html> 
<html> 
    <head> 
     <link rel="stylesheet" href="styles.css"> 
     <script src="jscript.js"></script> 
     <title>Task 3</title> 
    </head> 

    <body> 
     <table align="center" style="border:groove;"> 
      <tr> 
       <td> 
        <button id="btn" onclick="switch()">Switch!</button> 
       </td> 
      </tr> 
      <tr> 
       <td> <img src="black-circle.png" class="circles" id="c1"> </td> 
      </tr> 
      <tr> 
       <td> <img src="black-circle.png" class="circles" id="c2"> </td> 
      </tr> 
      <tr> 
       <td> <img src="black-circle.png" class="circles" id="c3"> </td> 
      </tr> 
     </table> 

    </body> 
</html> 

CSS:(很簡單)

@charset "utf-8"; 
/* CSS Document */ 

.circles { 
    width:53px; 
    height:54px; 
} 

#c1 { 

} 

#c2 { 


} 

#c3 { 


} 

#btn { 


} 

的JavaScript:

var funcSelect = [displayRed(), displayYellow(), displayGreen()]; 
var funcSelectOperator = 0; 
function switch() { 
    ++funcSelectOperator; 

    if (funcSelect == 3) { 
     funcSelectOperator = 0; 
    } 

    funcSelect[funcSelectOperator]; 
    } 

function displayRed() { 
    document.getElementById("c1").src = "red-circle.png"; 
    document.getElementById("c2").src = "black-circle.png"; 
    document.getElementById("c3").src = "black-circle.png"; 
} 

function displayYellow() { 
    document.getElementById("c1").src = "black-circle.png"; 
    document.getElementById("c2").src = "yellow-circle.png"; 
    document.getElementById("c3").src = "black-circle.png"; 
} 

function displayGreen() { 
    document.getElementById("c1").src = "black-circle.png"; 
    document.getElementById("c2").src = "black-circle.png"; 
    document.getElementById("c3").src = "green-circle.png"; 
} 
// JavaScript Document 
+0

哪裏是我定義的?我沒有看到你的代碼。 – Danmoreng

+0

你的條件,如果(funcSelect == 3)有一個錯字,它應該是如果(funcSelectOperator == 3) –

回答

0

那是因爲你的開關功能,你混的變量角色和Don」執行該功能。 另外,從您的函數數組中刪除執行。

var funcSelect = [displayRed, displayYellow, displayGreen]; 
var funcSelectOperator = 0; 
function switchColor() { 
    if(funcSelectOperator == 2) 
     funcSelectOperator= 0; 
    else ++funcSelectOperator; 

    funcSelect[funcSelectOperator](); 
} 
+0

我試過了,但它仍然無法正常工作 –

+0

由switchColor功能開關重命名爲「開關」是一個特殊的關鍵字 – Kulvar

+0

仍然不起作用 –