2016-04-27 81 views
2

我想製作一個使用HTML,CSS和Javascript的小遊戲。簡單的Javascript文件無法正常工作

HTML和CSS和大部分的Javascript代碼似乎工作正常。然而,當在FireFox中啓動程序並嘗試點擊背景RGB值與存儲在變量中的RGB值相匹配的正方形div時,我會得到錯誤的答案。這是假設警告用戶「正確」,而是所有警報輸出「錯誤」。

下面是HTML文件

<!DOCTYPE> 
<html> 
<head> 
    <title>Color Game</title> 
    <link rel="stylesheet" type="text/css" href="colorGame3.css"> 
</head> 
    <body> 

     <h1> 
     RGB Color Game 
     <span id = "colorDisplay"> 
     RGB 
     </span> 
     </h1> 

     <div id="container"> 
      <div class="square"></div> 
      <div class="square"></div> 
      <div class="square"></div> 
      <div class="square"></div> 
      <div class="square"></div> 
      <div class="square"></div> 
     </div> 

     <script type="text/javascript" src="colorGame3.js"></script> 

    </body> 
</html> 

這裏是CSS文件

body{ 
    background-color: #232323; 
    } 

.square{ 
width:30%; 
background:purple; 
padding-bottom:30%; 
float:left; 
margin:1.66%; 

} 

#container{ 

max-width:600px; 
margin:20px auto; 
} 

這裏是JavaScript文件

var colors = [ 
    "rgb(255,0,0)", 
    "rgb(255,255,0)", 
    "rgb(0,255,0)", 
    "rgb(0,255,255)", 
    "rgb(0,0,255)", 
    "rgb(255,0,255)" 
    ] 

    var squares = document.querySelectorAll(".square"); 

    var pickedColor = colors[2]; 

    var colorDisplay = document.getElementById("colorDisplay"); 

     colorDisplay.textContent = pickedColor; 

     for(var i = 0; i<squares.length;i++){ 

squares[i].style.background = colors[i]; 

squares[i].addEventListener("click",function(){ 

var clickedColor = this.style.background; 

    if(clickedColor === pickedColor){ 

     alert("Correct"); 

    } 
    else{ 

     alert("Wrong"); 
    } 
}); 
} 
+0

你在控制檯上看到了什麼錯誤? –

+0

我認爲你的問題是你使用背景而不是backgroundColor。但我不確定 – Kerndog73

+0

你應該console.log'pickedColor'和'clickedColor',它們不是同一個值。在Chrome中,至少在Firefox中可能是相同的,當從'style.background'獲取值時,值在逗號分隔符之後被格式化爲空格 –

回答

0

你的顏色pickedColorclickedColor不匹配,即使他們「技術上」都在CSS中工作。 this.style.background;在每種顏色之間插入一個空格。他們需要看起來像這樣...

var colors = [ 
    "rgb(255, 0, 0)", 
    "rgb(255, 255, 0)", 
    "rgb(0, 255, 0)", 
    "rgb(0, 255, 255)", 
    "rgb(0, 0, 255)", 
    "rgb(255, 0, 255)" 
    ] 
+0

好的,工作。感謝您的幫助! –

0

如果條件不匹配。有空間。

這是報警代碼alert (pickedColor + clickedColor); enter image description here