アップデート
予想通り、IEで1つの例外が見つかりました。IE例外を説明するには、jQueryの.browserメソッドを使用するだけです。これを以下のサンプルコードに追加しました。
試す:
$("#rect").click(function() {
var red = $.browser.msie ? "red" : "rgb(255, 0, 0)";
if ($(this).css('background-color') == red) {
$(this).css('background','blue');}
else {$(this).css('background','yellow');}
});
コメントで説明したように、jQueryはCSSプロパティの「背景」の各部分を分解するため、この場合は必要なプロパティを正確に呼び出す必要がありますbackground-color
。また、jQueryはカラー値をRGBスタイルとして返すため、赤はになりますrgb(255, 0, 0)
。.css("background"
これは、背景の設定に役立つことを止めるものではありません。cssと同様に、 backgroundは他のすべてのbackground-directプロパティをオーバーライドすることを覚えておいてください。
どうやら誰かが私のためにjsFiddleの例を作ったようです。(ありがとうSushanth)
また、@ RyanKinalは彼のコメントで良い点を述べています。「jQueryは色を特定の形式に正規化することすらできないため、ブラウザが異なれば色も異なる形式で返される可能性があります。注意が必要です。」 私はテストしていません...
さまざまなブラウザを介して返されるCSS「赤」:
- Firefox 17:「rgb(255、0、0)」
- Chrome 24:「rgb(255、0、0)」
- Opera 12: "rgb(255、0、0)"
- Safari 5:「rgb(255、0、0)」
- IE 7-9:「赤」