ドロップダウンメニューをエミュレートする2つのdivタグがあります。外側のdivをクリックすると、内側のdivがその下にいくつかのリンクが表示されます。マウスがどちらかのdivを残しているときにだけ、内側のdivが隠れるようにしたい。jQueryを使用した簡単なメニューのエミュレーション
- は、外側のdivをクリックしてください:ここで
は、コードが失敗している方法です。
- 内部divを入力しないでください。
- マウスを上または左に移動して、外側のdivを終了します。内側のdivはそれ自身を隠すべきですが、そうではありません。
私は外側のdivにフックマウスアウトイベントを持っている必要があることを理解し、私は、私はそれを入力しようとすると、それは、内側のdivを隠し、それを行うとき。
マウスがどちらのdivを残しても、内部divが非表示になるのはどうすればできますか?
<style type="text/css">
div.toggleMenu { position: relative; }
div.menu { position: absolute; left: -3px; top: 19px; display: none; }
</style>
<div class="toggleMenu">
Toggle Menu
<div class="menu">
<ul>
<a href="http://www.google.com/"><li>Google</li></a>
<a href="http://www.yahoo.com/"><li>Yahoo</li></a>
<a href="http://www.bing.com/"><li>Bing</li></a>
</ul>
</div>
</div>
<script type="text/javascript">
// Toggle the menu.
$('.toggleMenu').click(function()
{
$(this).find('.menu').toggle();
});
// Hide the menu when the mouse leaves the tag.
$('.menu').mouseleave(function()
{
$(this).hide();
});
</script>
アップデート:私はマウスオーバーしようとしたとき、それは行の高さは、私のコードを持っていた問題に起因し、内側のdiv消えると私の問題の一部。厳密な検査(IEの1600倍ズーム)の後、私は問題を発見しました。そして、jqueryはプログラムで高さを設定しました。ここで興味のある人のための最終的なコードは次のとおりです。.menu
以来
$('.toggleMenu').click(function()
{
if ($(this).find('.menu').css('display') == 'none')
{
// The menu needs to be positioned programmatically for the
// height due to the differences among browser interpretations of height.
var height = $('.toggleMenu').height() - 1;
$(this).find('.menu').css('top', height + 'px');
$(this).find('.menu').css('left', '-3px');
$(this).find('.menu').show();
}
else
{
$(this).find('.menu').hide();
}
});
// Hide the menu when the mouse leaves the tag.
$('.toggleMenu').mouseleave(function()
{
$(this).find('.menu').hide();
});
私がして受け入れてから1時間後に私の答えを提供するのはうまくいっています; – AlienWebguy
@AlienWebguyはパッシブな攻撃的ですか? LOL – Chev
LOLはい、S.Oの政治。私には時々笑います。 – AlienWebguy