jQuery树菜单以错误的方式折叠

jQuery树菜单以错误的方式折叠,jquery,html,Jquery,Html,只是一个关于jQuery的简单问题。我对这个很陌生 如果我点击子菜单,列表应该向下滑动,而每隔一个打开的列表应该向上滑动。到目前为止,它的工作。但当我点击打开的那一个时,它会再次上下滑动。我怎样才能阻止开着的那个人那样做?打开的页面应该在单击时保持在那里 非常感谢 <ul> <li> <a href="#">Item 1</a>

只是一个关于jQuery的简单问题。我对这个很陌生

如果我点击子菜单,列表应该向下滑动,而每隔一个打开的列表应该向上滑动。到目前为止,它的工作。但当我点击打开的那一个时,它会再次上下滑动。我怎样才能阻止开着的那个人那样做?打开的页面应该在单击时保持在那里

非常感谢

            <ul>
                <li>
                    <a href="#">Item 1</a>
                    <ul class="sub-menu">
                        <li>
                            <a href="#"></a>
                        </li>
                        <li>
                            <a href="#"></a>
                        </li>
                        <li>
                            <a href="#"></a>
                        </li>
                        <li>
                            <a href="#"></a>
                        </li>
                    </ul>
                </li>
                <li>
                    <a href="#">Item 2</a>
                    <ul class="sub-menu">
                        <li>
                            <a href="#"></a>
                            <ul class="sub-menu">
                                <li>
                                    <a href="#"></a>
                                    <ul class="sub-menu">
                                        <li></li>
                                        <li></li>
                                    </ul>
                                </li>
                                <li>
                                    <a href="#"></a>
                                </li>
                                <li>
                                    <a href="#"></a>
                                </li>
                                <li>
                                    <a href="#"></a>
                                </li>
                            </ul>
                        </li>
                        <li>
                            <a href="#"></a>
                        </li>
                        <li>
                            <a href="#">S</a>
                        </li>
                    </ul>
                </li>
                <li>
                    <a href="#">Item 3</a>
                </li>
                <li>
                    <a href="#">Item 4</a>
                </li>
                <li>
                    <a href="#">Item 5</a>
                </li>
            </ul>

基本上,您的
not
选择器没有获得任何匹配项,因此没有排除任何内容

对于树,您希望使用相对于单击的项目进行操作的选择器。然后它们也可以用于嵌套元素

试试这个:

JSFiddle: 您会注意到它现在处理子菜单的方式与处理父菜单的方式相同

*注意:您还需要在折叠状态下启动所有内容。还有这个:

$('.treeview>ul>li>ul').hide();

创建一个JSFIDLE复制您的问题是一个好主意,
标记将有助于$(这个)。父菜单('.sub-menu')应该是$(这个)。下一步('.sub-menu')对吗?+1提供足够的代码和HTML来复制:)非常感谢。那帮了大忙@丹尼斯:没问题:)
$('.treeview ul li a').click(function (ev) {
    var $this = $(this);
    // Collapse all other lists under parent list
    $this.closest('li').siblings().find('ul').slideUp();
    // Expand the sibling lists
    $this.siblings().slideDown();
    ev.preventDefault();
});
$('.treeview>ul>li>ul').hide();