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

要素の「セル」とは何ですか? 要素が background-color スタイルをサポートしていない可能性がありますか?

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 に答える