2016-04-14 81 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

仍然不起作用 –