0

我遇到了一些 jquery menu mouseenter 问题。p鼠标进入时如何p解决display block

<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>
​

现场演示:http: //jsfiddle.net/KTvf7/

4

3 回答 3

1

你为什么不使用一个<ul>?我认为这对你想要做的事情更好。

html:

<ul>
    <li>
        <a href="#">Menu One</a>
        <p>About Us</p>
    </li>
    <li>
        <a href="#">Menu Two</a>
        <p>Contact Us</p>
    </li>    
</ul>

CSS:

li { float: left; padding: 0 2em; }
p {
    height: 100px;
    background: red;
    padding: 0 2em;
    display: none;
    position: absolute;
}

问:

$('li').hover(function(){
    $(this).find('p').stop(true, true).slideDown();
}, function(){
    $(this).find('p').stop(true, true).slideUp();
});

例子

jsFiddle

于 2012-02-12T21:45:08.107 回答
0

最好以其他方式构建菜单,例如:

    <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; }到 css。

在这种结构中,进出.menu > li作品很棒。


如果你仍然想坚持你的结构,你只能附加mouseleave到容器上。.menu我在这个小提琴中给它上了一堂课:

$('.menu a').mouseenter(function(){
    $('.menu p').css('display', 'none');
    $(this).next('p').slideDown('slow');
})

$('.menu').mouseleave(function(){
    $('p', this).slideUp('slow');
});
于 2012-02-12T21:43:51.947 回答
0

给你修好了。。

  $('a').mouseenter(function(){
    $('p').css('display','none');
    $(this).next('p').slideDown('slow');});
$('p').mouseleave(function(){
    $('p').slideUp('slow');
});
$('p').mouseenter(function(){
    $(this).css('display','block');
});
于 2012-02-12T21:43:15.003 回答