0
$(cell).click(function(){
  var cellColor = $(this).css("background-color");

  if(cellColor != "red"){
    $(this).css("background-color", "red");
  }else{    
    $(this).css("background-color", "blue");
  }
});

你好,

为什么再次单击同一个单元格时 else 语句在这里不起作用(即单元格的背景在第一次单击时按预期变为红色)?

谢谢

4

2 回答 2

4

jQuery 不是按名称返回颜色代码,而是按 RGB - http://jsfiddle.net/cHWxv/

$("div").click(function(){
  var cellColor = $(this).css("background-color");

    alert(cellColor);

  if(cellColor != "rgb(255, 0, 0)"){
    $(this).css("background-color", "rgb(255, 0, 0)");
  }else{    
    $(this).css("background-color", "rgb(0, 0, 255)");
  }
});​
于 2012-06-18T11:40:36.820 回答
0

什么是元素的“细胞”?也许元素不支持背景颜色样式?

尝试在 firefox 中使用 firebug 来调试您的 JS 代码,以查看确切的值是什么。

检查有关 css-function http://api.jquery.com/css/的 jquery 文档。尤其是这一段:

".... jQuery 理解并返回 .css('background-color') 和 .css('backgroundColor') 的正确值。不同的浏览器可能返回逻辑上但文本上不相等的 CSS 颜色值,例如,# FFF、#ffffff 和 rgb(255,255,255)...."

于 2012-06-18T11:49:45.797 回答