と一致するかどうかを判断するために.matchesSelector
メソッドを使用しています、一つは推測にありますが、私の推測では、あなたがmouseover
を使用していることで、ホバーリングを決定するためにmouseout
。 mouseout
イベント泡がであるため、li
の子孫要素からmouseout
を受け取ります。間違って(ここでも推測しています)、カーソルがli
の子孫要素の1つを残したままではなくなったと思います。 li
。同様に、カーソルがli
から子孫要素に移動すると、li
はmouseout
をトリガーします。これは、jQueryがmouseover
とmouseout
を使用しないため、mouseenter
とmouseleave
を使用しているため、jQueryで動作します(hover
、おそらく?を使用しています)。 (ネイティブではないブラウザー上でエミュレートしますが、元々はIEのみでした)
jQueryを使用している場合は、明らかにhover
を使用してください。あなたがライブラリを使用していないか、mouseenter
とmouseleave
をエミュレートしていないライブラリを使用している場合は、でない限り、mouseout
のどの要素が動作しているかをチェックして無視する必要があります。
サブナビゲーションul
がそれを明らかにするli
をカバーしていない場合は、CSSのみの解決策が考えられます。 (あなたは位置決めのために、これ以上のものをしたいと思いますが、これは表示/非表示の部分を行います)
<ul class="mainnav"><!-- Main nav -->
<li><!-- Nav item 1 -->
Nav Text 1
<ul><!-- Menu for nav item 1 -->
...
</ul>
</li>
<li><!-- Nav item 2 -->
Nav Text 2
<ul><!-- Menu for nav item 2 -->
...
</ul>
</li>
</ul>
このCSSはそれを行います:例えば、構造と
ul.mainnav > li > ul {
display: none;
}
ul.mainnav > li:hover > ul {
display: none;
}
ことIE6では動作しません。それはIE7以上で動作します(標準モードの場合)。
コードは千の言葉の価値があるん。 –