私はいくつかのjqueryメニューmouseenterの問題に会った。マウスをp
と入力すると、p
はまだdisplay block
になります。メニュー内のjquery mouseenter mouseout
<script>
$(document).ready(function() {
$('a').mouseenter(function(){
$('p').css('display','none');
$(this).next('p').slideDown('slow');
}).mouseleave(function(){
$('p').slideUp('slow');
});
$('p').mouseenter(function(){
$(this).css('display','block');
});
});
</script>
<div>
<a>menu1</a>
<p>about us</p>
<a>menu2</a>
<p>contact</p>
</div>
<style>
div{
position:relative;
z-index:0;
width:600px;
height:20px;
}
p{
display:none;
position:absolute;
top:20px;
left:0;
width:300px;
height:100px;
background:#ccc;
}
</style>
ライブデモ:
<ul class="menu">
<li>item
<ul>
<li>sub item</li>
<li>sub item</li>
<li>sub item</li>
</ul>
</li>
</ul>
とに.menu li ul { display: none; }
を追加します。屋のためにそれを修正http://jsfiddle.net/KTvf7/
(1) '$( 'P')のMouseEnter(関数(){$(この)の.css( '表示'、 'ブロック')。 $(this).show(); }); 'は何もしません(' p 'は別のブロックであり、そうでなければ表示できません)。 (2)ユーザが 'a'要素からメニューを離れる場合、' p'はまだ表示されます。 – ori
私はあなたに同意するだろう...急いで私の間違い.. $(this).show();上記のコードでは役に立たない – Alexander