私は少し jQuery を学んだばかりで、単純な色の変化効果のためにそれを使用しようとしています。<div
#foo と #bar という2 つの > があるとします。#foo には多くの URL があり、次の CSS が定義されています。
#foo a {color: blue; border-bottom: 1px dashed blue}
#foo a:hover {color: black; border-bottom: 1px solid black}
ここで、ユーザーが #bar をクリックしたときに #foo のリンク (a:link) の色を変更したいのですが、a:hover の色はそのままにしておきたいので、関数を次のように記述します。
//...
$("#bar").click(function () {
$("#foo a").css("color", "red");
});
//...
問題は、この関数はすべてのリンクを赤に変更しますが、a:hover の色が失われることです。つまり、ユーザーがカーソルをリンクに移動すると、期待どおりに黒にならず、赤のままになります。
<a
jQuery が#foo 内の >s にインライン スタイルを配置し、それらを<a style="color:red;" href="..."
> にすることがわかっているので、これは :hover 疑似クラスを上書きすると思います。疑似クラスのインラインスタイル属性は誰にも実装されていないため、意図した効果が得られるかどうかは疑問です...
それでも、次のようなものを書く必要のない解決策はありますか
$("#foo a").hover(
function(){ $(this).css("color", "black");},
function(){ $(this).css("color", "blue");}
)
?
ありがとう。