jquery - 我应该如何消失子菜单?

标签 jquery html css

我在我的元素中使用导航菜单。该菜单有多个菜单,其中又包含子菜单和大型菜单。当我单击具有子菜单的链接时,它的元素将出现,当我单击时它将消失在另一个链接上(没有子菜单) 但我的问题是:当我点击一个有子菜单的链接时,前一个链接的子菜单不会消失。所以最终所有链接都将保持打开状态(显示它们的子菜单)只需点击一个链接它们就会消失。

$(document).ready(function() {
$('#right-menu > ul li').click(function(event) {
    if($(this).find('ul ').hasClass('active'))
    {
        $(this).find('ul').removeClass('active').slideUp('400');
    }else{
        $(this).find('ul').addClass('active').slideDown('400');
    }
});
});

最佳答案

更改您的逻辑,以便您首先检查单击的元素是否处于事件状态。然后向上滑动任何也处于事件状态的 ul 标签。最后,仅当单击的元素开始时未处于事件状态时才向下滑动。

类似于:

$(document).ready(function() {
    $('#right-menu > ul li').click(function(event) {
        var activeStart = false;

        if($(this).find('ul').hasClass('active'))
        {
            activeStart = true;
        }

        $('ul.active').removeClass('active').slideUp('400');

        if(!activeStart) {
            $(this).find('ul').addClass('active').slideDown('400');
        }
    });
});

关于jquery - 我应该如何消失子菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33345039/

相关文章:

jquery - 搜索变量的标签

javascript - Jquery div slider

html - 构建响应式网站的各种方法有哪些?

javascript - 查询; $().css 无法更新对象的样式

javascript - 用链接包裹一堆图像

html - 使用打印模式 css 打印网页时页眉和正文内容重叠

html - 如何将两个div放到下一个

css - 如何在跳转菜单中以编程方式减少超过 1000 个链接?

c# - asp.net webform以编程方式添加透明图像

javascript - Html 内容到 Pdf 转换