我自己的jQuery手风琴

时间:2009-11-02 15:40:25

标签: jquery accordion slideup slidedown

嘿伙计们,我创建了以下菜单结构:

<div id="menu">
<ul>
<li><a href="#">Main Item1</a></li>
<li><a href="#">Main Item2</a></li>
<li><a href="#">Main Item3</a>
    <ul>
    <li><a href="#">SubItem for MainItem3</a></li>
    <li><a href="#">2ndSub for MainItem3</a></li>
    </ul>
</li>
<li><a href="#">Main Item4</a>
    <ul>
    <li><a href="#">SubItem for MainItem4</a></li>
    <li><a href="#">2ndSub for MainItem4</a></li>
    </ul>
</li>
</ul>
</div>

这就是我的菜单结构。现在我想使用jQuery Latest来制作SlideUp / SlideDown效果。

我这样做:

$(document).ready(function(){
    $('#menu ul li:has(ul)').mouseenter(function(){         
                $('#menu ul li ul').slideDown('slow');                              
    }).mouseleave(function(){
        $('#menu ul li ul').slideUp('slow');
    });
});

我首先尝试使用mouseover和mouseout,但是当我使用该功能时,Mouseover工作,当我想要转到Sub时,菜单滑动,但mouseout事件发生了。现在它奏效了,但当我徘徊在在主要项目3上,也从主要项目4开始和关闭鼠标输出?!?!怎么说只有菜单项从例如主要项目3 oder主要项目4 ???

希望你理解我的意思?

由于

1 个答案:

答案 0 :(得分:1)

$(function(){
    $('#menu ul li:has(ul)').hover(function(){                 
            $(this).find('ul').slideDown('slow');                                                          
    }, function(){
            $(this).find('ul').slideUp('slow');
    });
});