首页 > 解决方案 > 为什么我的 checkColor 函数没有运行?

问题描述

任何人都可以帮我弄清楚为什么我的 checkColor 函数在第二次和后续点击中没有运行,一旦它所依赖的 If 循环的必要条件被认为是 True (根据 Log,它是)?它适用于第一次单击,更改按钮的颜色,然后理论上应该从 5 移动到 4,依此类推,对于每次单击,根据分配的数字将每个按钮的颜色更改为“行”。它记录了情况确实如此,“row”和“someClass”对象与我想要的匹配,但它实际上并没有运行。它只是运行日志,但后续按钮的颜色没有实际变化。提前致谢。

// var playerOne = prompt("Player One: Enter your Name - You will be Blue.")
// var playerTwo = prompt("Player One: Enter your Name - You will be Red.")

var gClass = $(".G")
var fClass = $(".F")
var eClass = $(".E")
var dClass = $(".D")
var cClass = $(".C")
var bClass = $(".B")
var aClass = $(".A")

var buttons = $("button")

var row = 5
var locRow = 5
var someClass = 0
var locClass = 1
var someClassAttr = 0
var locClassAttr = 1


function returnBackgroundColor(rowIndex,colIndex){
  // console.log($(colIndex[rowIndex]).prop("background-color"));
  // console.log(rowIndex);
  return($(colIndex[rowIndex]).prop("background-color"));
}

function changeColor(locRow, someClass){
  someClass.eq(row).css("background-color","red");
}

function checkColor(locRow ,someClass){
    for (locRow; locRow > -1; locRow--) {
      if (returnBackgroundColor(locRow, someClass) === undefined){
        return changeColor(locRow, someClass);
      }else {
        false;
      }
    }
  }

buttons.on("click", function(){
  if ($(this).attr('class') === 'G') {
    var someClass = gClass;
  }else if ($(this).attr('class') === 'F') {
    var someClass = fClass;
  }else if ($(this).attr('class') === 'E') {
    var someClass = eClass;
  }else if ($(this).attr('class') === 'D') {
    var someClass = dClass;
  }else if ($(this).attr('class') === 'C') {
    var someClass = cClass;
  }else if ($(this).attr('class') === 'B') {
    var someClass = bClass;
  }else if ($(this).attr('class') === 'A') {
    var someClass = aClass;
  }else {
    false;
  }
  someClassAttr = someClass.attr('class');
  if (locClassAttr === someClassAttr){
    locRow = locRow - 1;
    console.log(locRow, someClass);
    checkColor(locRow, someClass);
    // console.log(checkColor(locRow, someClass));
  }else {
    checkColor(row, someClass);
    var locClass = someClass;
    locClassAttr = locClass.attr('class');
    console.log(locClassAttr, someClassAttr);
  }
})

标签: javascriptjquery

解决方案


推荐阅读