0

a:linkホバーされている子サブメニューに基づいて、ナビゲーションメニューで最も近い親のCSSクラスを切り替えようとしています。最も近い親<li>タグに対して機能させることはできますが、a:linkこのイベントを発生させたい内部では機能しません。

HTML:

<ul class="menu">
  <li><a href="#">First Parent</a>
     <ul class="sub-menu">
          <li><a href="#">First Child</a></li>
          <li><a href="#">Second Child</a></li>
     </ul></li>
  <li><a href="#">Second Parent</a>
     <ul class="sub-menu">
          <li><a href="#">First Child</a></li>
          <li><a href="#">Second Child</a></li>
     </ul></li>
</ul>

だから、私が書いた、働いている親を選択するための関数<li>は:

$("ul.sub-menu").hover(function(){
        $(this).closest("li").toggleClass("parenthovered");
});

しかし、どうすればこのクラスをa:link親のに切り替えることができul.menu liますか?何かのようなもの:

$("ul.sub-menu").hover(function(){
        $(this).closest("li a").toggleClass("parenthovered");
});   

もちろん、それは機能しません。どの構文を変更する必要があるのか​​わかりません。

どうもありがとう。

4

4 に答える 4

2

いつでも使用できます:

    $("ul.sub-menu").hover(function(){
            $("a", $(this).closest("li")).toggleClass("parenthovered");
    });
于 2012-04-23T15:45:26.780 に答える
2
$("ul.sub-menu").hover(function(){
    $(this).siblings('a').toggleClass("parenthovered");
}); 

デモ

于 2012-04-23T15:45:41.693 に答える
1

あなたはあなたがすでに持っているあなたの中に単にfind入れ子にすることができます。<a><li>

$("ul.sub-menu").hover(function() {
  $(this).closest("li").find("a").toggleClass("parenthovered");
});
于 2012-04-23T15:45:48.853 に答える
1

findメソッドを使用して、タグ内のタグを取得します。

$("ul.sub-menu").hover(function(){
        $(this).closest("li").find("a").toggleClass("parenthovered");
});
于 2012-04-23T15:47:32.493 に答える