-2

これをどのように受け止めますか:

http://codepen.io/anon/pen/xeBmt

function updateColor(hexValue) {
    $('a').css({"color" : "#" + hexValue});
}

$('body').on('click', 'li', function() {
    var hexValue = $(this).attr('data-color');
    updateColor(hexValue); 
});

aの16進値が#dddddd ?の場合にのみ色を変更します。

4

2 に答える 2

2
if($('a').css('color') == '#dddddd') {
    $('a').css({"color" : "#" + hexValue});
}

これを関数に入れます。

編集

function updateColor(obj, hexValue) {
    obj.css("color",hexValue);
}
$('a').click(function() {
    if($(this).css('color') == 'rgb(221, 221, 221)'){
        var hexValue = $(this).data('color');
        updateColor($(this), hexValue);
    }     
});

これは機能します。RGBのことについての私の間違い。フィドルも持ってください。http://jsfiddle.net/SYBez/1/

しかし、@JasonSperskeが言ったように、色が変わると、色が変わったときにコードが機能しなくなります。あなたがやろうとしていることの目的はわかりませんが、セレクターとして色に依存するのは奇妙に思えるので、データ、クラス、または何か他のものを使用してこれを行います。

于 2013-02-06T23:17:43.160 に答える
1

わかりました、これはあなたが探していた答えではないかもしれませんが、このコードはあなたが求めていることを (私が思うに) 実行します ( demo )。最初に、マークアップにいくつかの変更を加える必要があります (これらの変更のさまざまな順列と、それぞれがどのように機能するかを示してみました)

HTMLから始めましょう。ここでは、色の CSS ルール ( と呼ばれるChange) と#ddddd、同じ色の短いバージョンのインライン スタイル( #ddd)を追加しました。

<ul>
  <li data-color="f00">Red</li>
  <li data-color="0f0">Green</li>
  <li data-color="00f">Blue</li>
  <li data-color="ff0">Yellow</li>
  <li data-color="f0f">Purple</li>
</ul>
<a href="#" class='Change'>Look at my color</a>
<a href="#">Look at my color</a>
<a href="#" class='Change'>Look at my color</a>
<a href="#">Look at my color</a>
<a href="#" style='color: #ddd;'>Look at my color</a>

次に、CSS (CSS には各ボックスを色付けするための多くのルールがあります。これを追加しただけです。

a.Change {
  color: #dddddd;
}

最後にスクリプト:

function updateColor(hexValue) {
  $('a').filter(function () {
    return $(this).css('color') == 'rgb(221, 221, 221)';
  }).css({
    "color": "#" + hexValue
  });
}

$('body').on('click', 'li', function () {
  var hexValue = $(this).attr('data-color');
  updateColor(hexValue);
});

ブロックの 1 つをクリックすると、#dddddd( rgb(221, 221, 221)) の色のリンクのみが更新されます。ただし、それらを更新すると、元の色が失われるため、もう一度クリックしても機能しません(そのため、この回答が実際にあなたがやろうとしていることに役立つかどうか疑問に思います))

于 2013-02-06T23:52:44.883 に答える