これと同様の問題が発生しています。ドロップダウンボックスがちらつきます-Firefoxで発生しないように見えることを除いて、マウスをその上に移動すると、ドロップダウンメニューがちらつくJQueryとCSSが表示されます。<li>
自分が持っているmouseoutイベントにアラートを入れたところ、メニュー内で別のイベントに移動するたびにアラートがトリガーされたことがわかりました。これがその背後にあるhtmlコードの重要な部分です。
<!--// HEADER BAR //-->
<div id="header">
<!--// NAVIGATION LINKS //-->
<div id="navigation">
<!--// AUTHENTICATED //-->
<div id="options" class="authenticated">
<ul>
<li><a href="javascript: toggleAccount()" class="account" title="Account">/</a></li>
</ul>
</div>
<!--// ACCOUNT MENU //-->
<div id="account_container" style="display: none;" onmouseout="hideAccount();">
<div id="account">
<ul>
<li>Options...</li>
</ul>
</div>
</div>
</div>
</div>
ご覧のとおり、「account_container」divはドロップダウンメニューです。これは、ユーザーが認証済みのアカウントliをクリックすると最初に表示され、ユーザーがliをもう一度クリックするかマウスアウトすると消えます。ナビゲーションdivの高さはcssで40pxに設定されているため、リンクされた質問のように位置の問題である可能性があると思いましたが、高さをautoに設定しても修正されず、アカウントコンテナを取り出すことができませんナビゲーションバーの位置が混乱するためです。ブラウザが1つのメニュー項目から別のメニュー項目へのシフトをマウスアウトイベントとして検出するのはなぜですか。それを防ぐにはどうすればよいですか。
編集:
この質問に対するAndyEの答えのようなことをしてもらえますか?に変更onmouseout="hideAccount()"
してonmouseout="hideAccount.call(this)"
、hideAccount関数内のドロップダウンの子要素の上にマウスがあるかどうかを検出できますか?もしそうなら、私はそれについてどうしますか?参考までに、hideAccount関数は次のとおりです。
function hideAccount(){
//alert("mouse out!");
$(".account_container").hide();
}