私はRGB
カラーピッカーゲームで取り組んでいます。 ゲームで6
の色の四角形のランダムグリッドが生成され、グリッドから正しく選択されたRGB色を選択すると、これらの6色の四角形からランダムなRGB色が選択されます6
すべての色がこの色に変わり、色が隠れているグリッドからの色が正しくありません。それを隠すロジックは、単に色を背景色と同じにしました。時間的に四角形のクリックイベントリスナーを無効にする(カラーピッカーゲーム)
私はこのイベントリスナーがゲームの各ラウンドで1回だけ動作するようにグリッドクリックイベントlistener.my問題を追加しました。プレーヤーが間違った色を選択した場合、色の四角は隠れてイベントリスナーがクリックされます一時的に無効にされている場合は、右クリックイベントリスナーをクリックしても無効にする必要があります。
間違った選択された正方形の色を隠す別の良い方法がある場合は、それに言及してください。
ゲームのインターフェイスの外観のように:
この問題のコードのブロック:
var colors = generateRandomColors(6);
var squares = document.querySelectorAll(".square");
var pickedColor = pickColor();
var colorDisplay = document.getElementById("colorDisplay");
var messageDisplay = document.querySelector("#message");
var h1 = document.getElementsByTagName("h1")[0];
var resetBtn = document.getElementById("reset");
colorDisplay.textContent = pickedColor;
// add click listener to new colors button
resetBtn.addEventListener("click",function(){
reset();
});
for (var i = 0; i < squares.length; i++) {
// add intial colors to squares
squares[i].style.backgroundColor = colors[i];
// add click listeners to squares
squares[i].addEventListener("click",function(){
// grab color of clicked square
var clickedColor = this.style.backgroundColor;
// compare color to pickedColor
if(clickedColor === pickedColor){
changeColors(clickedColor);
h1.style.backgroundColor = clickedColor;
resetBtn.textContent = "Play Again";
messageDisplay.textContent = "Correct!";
}
else{
this.style.backgroundColor = "#232323";
messageDisplay.textContent = "Try Again!";
}
});
}
任意の提案の助けをいただければ幸いです。
https://api.jquery.com/off/ – LiverpoolOwen
そのコードに関する質問を、実際に –
https://developer.mozilla.org/en-US/docs/Web/それを表示しませんAPI/EventTarget/removeEventListenerまたはthisまたはplain jsイベントリスナーを削除します – LiverpoolOwen