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