1

これに似た最近の投稿を見たことがありますが、答えはうまくいきませんでした。Connect 4 ゲームを作成しようとしていますが、基本的に私の問題は、ボックスをクリックするたびに色が変わることですが、色付きのボックスをクリックすると、それも次の色に変わります。赤または黄色の場合、各ボックスをその色のままにしたいと思います。

 if ($(this).css('background-color') == $(this).css('background-color', 'silver'))

また

 if ($(this).css('background-color') != 'red') || (if ($(this).css('background-color')  !='yellow))

このifステートメントをスキップするだけですか?

4

3 に答える 3

1

この.cssメソッドの出力は、ブラウザごとに異なります。

$('<div>').css('background-color', 'red').css('background-color');

// Google Chrome
// "red"

// Mozilla Firefox
// "rgb(255, 0, 0)"

もう一つの例:

$('<div>').css('background-color', 'rgba(0, 0, 0, 0)').css('background-color');

// Google Chrome
// "rgba(0, 0, 0, 0)"

// Mozilla Firefox
// "transparent"

解決

Working FIDDLE Demo

すべての可能な状況ですべての色を保存するオブジェクトを作成します。

var colors = {
    'red'  : ['red'  , '#FF0000', '#ff0000', 'rgb(255, 0, 0)', 'rgba(255, 0, 0, 1)'],
    'green': ['green', '#00ff00', '#00FF00', 'rgb(0, 255, 0)', 'rgba(0, 255, 0, 1)']

    // etc
};

$.inArrayこれで、比較にメソッドを使用できます。

HTML

<div id="test1" style="background-color: red;">I am RED</div>
<div id="test2" style="background-color: blue;">I am Blue</div>

JS

// you want to see if `elem_color` is `red`
// just like this: elem_color == 'red'

var elem_color = $('#test1').css('background-color');

if ($.inArray(elem_color, colors['red']) > -1) {
    alert('Element is RED');
}

// you want to see if `elem_color` is not `green`
// just like this: elem_color != 'green'

var elem_color = $('#test2').css('background-color');

if (! ($.inArray(elem_color, colors['green']) > -1)) {
    alert('Element is not GREEN');
}
于 2013-05-16T13:59:57.413 に答える
0

#FF0000 と通常の赤のどちらを使用しますか? 赤が #FF0001 の場合、赤として認識されません。

元の色とまったく同じステートメントを作成する必要があります。

于 2013-05-16T13:54:27.507 に答える