1

<ul>サブメニューの子ナビゲーションを備えたメニューもあり、子のコンテナ のホバリングに基づいて、子の親にクラスを追加しようとしています。

これは私がこれまでに持っているものです:http://jsfiddle.net/2KhnX/15/

ご覧のとおり、クラスが追加されることはありません。HTMLからCSSの大部分を取り除き、追加したいクラスを残しておくと、正常に機能します-http://jsfiddle.net/2KhnX/21/

これにより、CSSが競合しているか、JQueryが実行しようとしているイベントを台無しにしていると私は信じています。私の推測ではparent > child、CSSのルールを使用しているためか.sub-menu、初期プロパティが。であるためかもしれませんdisplay:noneよくわかりません。CSSがこれを台無しにしていること、またはCSSが原因で適切なセレクターを使用していないことを知っています。

私は迷子になっているので、どんな洞察も大歓迎です。

4

1 に答える 1

2

これは問題のあるcssです:

ul.menu li a:link, ul.menu li a:visited {
        background: url('images/alink.jpg') top center repeat-x;
}
.parenthovered {
    /* stuff */
}

これらの最初のセレクターは、.parenthoveredセレクターよりも特異性が高いため、優先されます。これにはいくつかの方法で対処できます。1つの方法は、セレクターの最初のセットをより具体的にせず、2番目のセレクターをより具体的にすることです。

a:link, a:visited {
        background: url('images/alink.jpg') top center repeat-x;
}

.menu a.parenthovered {
    /* stuff */
}

もちろん、ページの残りの部分に意味のあるセレクターを選択する必要があります...

ワーキングフィドル: http: //jsfiddle.net/pabo/NR4yB/1/

また、この行を削除しても機能します。

background: url('images/alink.jpg') top center repeat-x;
于 2012-04-23T18:52:39.910 に答える