わかりました、これはあなたが探していた答えではないかもしれませんが、このコードはあなたが求めていることを (私が思うに) 実行します ( 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)
) の色のリンクのみが更新されます。ただし、それらを更新すると、元の色が失われるため、もう一度クリックしても機能しません(そのため、この回答が実際にあなたがやろうとしていることに役立つかどうか疑問に思います))