2017-05-06 7 views
2

他の要素が擬似クラスを持ち、持っていないときにトリガーするjQuery関数を書くことはできますか?例えばjQuery関数ベースの要素の擬似クラスを実行できますか?

要素Aが要素の上で推移しているときに、Cのクラスが「aishovered」しなければならないし、そうでないとき、それは戻って推移していない場合は

を「anothovered」へ行く必要があります。

<div class="a"> </div> 
<div class="b"> </div> 
<div class="c anothovered"> </div> 

Aがホバーされる:活性と:visite

<div class="a"> </div> 
<div class="b"> </div> 
<div class="c aishovered"> </div> 

ホバー状態がちょうどような他の擬似クラスで動作jQueryの解決策を探して、例えば、使用されていますd。

答えて

0

実際:hoverのためにあなたがhover

$(".a").hover(
    function() { $(".c").addClass("aishovered").removeClass("anothovered");}, 
    function() { $(".c").removeClass("aishovered").addClass("anothovered");} 
); 

を経て、mouseentermouseleaveに応えることができます...と:activeのためにあなたがfocusblurを扱うことができ、クラスを追加および削除します。

しかし、擬似クラスは、一般的にはです。CSSソリューションに固執する必要があります。文字通りの追加と削除クラスを、それが追加され、スタイリングを削除しません

.a:hover ~ .c { 
 
    color: blue; 
 
}
<div class="a">a</div> 
 
<div class="b">b</div> 
 
<div class="c">c</div>

:要素が兄弟であるので、あなたのケースでは、あなたはsibling combinatorであることを行うことができます。

+0

どう下のチェックリンク? – Sam

+0

@Sam:あなたの編集の回答を更新しました。 –

0
$(".a").hover(
    function() { 
    $('.c').addClass("aishovered"); 
    $('.c').removeClass("anothovered"); 
    }, 
    function() { 
    $('.c').addClass("anothovered"); 
    $('.c').removeClass("aishovered"); 
    } 
); 

アクティブ状態では約

http://jsfiddle.net/e27Dt/1836/

+0

これは:active状態でも動作しますか? – Sam

関連する問題