【问题标题】:how should i disappear submenu?我应该如何消失子菜单?
【发布时间】:2015-10-26 20:06:12
【问题描述】:

我在我的项目中使用导航菜单。菜单有几个菜单,又有子菜单和超级菜单。当我点击一个有子菜单的链接时,它的项目会出现,当我点击时它会消失在另一个链接上(没有子菜单) 但我的问题是:当我单击具有子菜单的链接时,前一个链接的子菜单不会消失。因此,最后所有链接将保持打开状态(显示它们的子菜单),只需单击一个链接它们就会消失。

$(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');
    }
});
});

【问题讨论】:

  • 请添加您的html代码,您的问题会更清楚

标签: jquery html css


【解决方案1】:

更改您的逻辑,以便检查单击的元素是否处于活动状态。然后向上滑动任何也处于活动状态的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');
        }
    });
});

【讨论】:

    【解决方案2】:

    你的问题是。如果用户单击带有子链接的链接,则子链接必须向下滑动。当点击另一个链接时,活动的子链接必须向上滑动,点击的子链接必须向下滑动。你可以试试这个。 在链接中添加一个类<ul class='non-active'>

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 2011-12-19
      相关资源
      最近更新 更多