Jquery - 让所有其他菜单向上滑动

时间:2010-04-13 10:45:38

标签: jquery drop-down-menu

我有一个用Jquery制作的下拉菜单。

现在,如果将鼠标悬停在所有菜单项上,其子菜单将同时显示。

我想如果我将鼠标悬停在一个菜单上,然后转到下一个菜单,则上一个菜单的子菜单将向上滑动。就像现在一样,我必须将它们从子菜单中拖出来让它们向上滑动。

更简单一点,当将鼠标悬停在父菜单上时,如果它们处于打开状态,请向上滑动所有其他父菜单的子菜单。

$("#DropDownMenu li.parent").hover(function() {
        $(this).find(".subMenu").slideDown('fast').show();

        $(this).parent().find(".subMenu").hover(function() {
        }, function() {
            $(this).parent().find(".subMenu").slideUp('slow');
        });
    });    

标记基本上就是这样,

<ul id="DropDownMenu">
<li class="parent"><a>Link1</a>
        <ul class="subMenu">
                <li><a>SubLink1</a></li>
                <li><a>SubLink2</a></li>
        <li><a>SubLink3</a></li>
        <li><a>SubLink4</a></li>
        </ul>
    </li>
<li class="parent"><a>Link2</a>
        <ul class="subMenu">
                <li><a>SubLink1</a></li>
                <li><a>SubLink2</a></li>
        <li><a>SubLink3</a></li>
        <li><a>SubLink4</a></li>
        </ul>
    </li>

2 个答案:

答案 0 :(得分:1)

不太确定,可能将slideUp链接到slideDown吗?

查看此页面:http://jqueryfordesigners.com/关于jquery的非常好的播客。 你会在那里找到一个答案

答案 1 :(得分:0)

我已经成功解决了!通过使用.siblings(),我可以滑动所有其他父级的子菜单。

$("#DropDownMenu li.parent").hover(
        function() {
            $(this).find(".subMenu").slideDown('fast');
            $(this).siblings().find(".subMenu").slideUp('slow');

            $(this).parent().find(".subMenu").hover(function() {
            }, function() {
                $(this).parent().find(".subMenu").slideUp('slow');
            });
        });