0

私は最低4レベルのメニューを(無制限に)構築しようとしています。私の願いは、jQueryを使用してメニューに対して一般的な再帰アクションを作成することです。子要素にカーソルを合わせると、親の高さが高くなります。これは、孫やひ孫にカーソルを合わせた場合にも同じ結果になります。同じ親要素の高さは、孫や孫ではなく、高くしたままにします。偉大な孫。

私はこれを試しました:http://jsfiddle.net/dTqX3/

代わりに何か他のものが必要なようです

$(this).parent().parent().parent().find("a:first")

これは正しく機能しません。

どんな助けでも大歓迎です!

4

2 に答える 2

1

<ul>DOM構造に基づいて、ツリーを祖先(ホバーされているアイテムのコンテナー)に登り、その兄弟(このコンテナーを表示させた上位レベルのメニューアイテム)であるアンカーを見つける必要があります。これは、次のように変換されます。 :

$(this).closest("ul").siblings("a")

この変更により、問題なく動作するようです。

于 2013-02-28T20:52:10.280 に答える
0

@Jonから素晴らしい指示を得た後(ありがとうございました!)、.parentsUntil().parents( )などの関数を試してみました。期待される結果はまだ見つかりませんでしたが、この再帰的な親のカウントがどのように機能しているかを知る可能性がありました。私は.parents()道を守り、追加しまし.last()た。次のコードはトリックを行いました:

$(this).parents('ul > li').last().find("a:first").attr('style', 'height:55px;line-height:55px;');

これは重要な部分です。

$(this).parents('ul > li').last().find("a:first")

デモ

于 2013-02-28T22:16:43.243 に答える