Jquery 菜单关闭时向上滑动多个div

Jquery 菜单关闭时向上滑动多个div,jquery,html,css,Jquery,Html,Css,我试图在JQ中创建一个菜单,你点击一个链接,它会滑动切换菜单的显示。在菜单中,您可以直接链接到页面,然后展开显示其他菜单的链接。到目前为止,我已经做到了: 我现在想做的是,当你点击顶部的链接,它切换回我需要关闭所有扩展的菜单。它当前部分工作,切换时仅隐藏顶部子菜单。因此,当您向下切换时,菜单将全部关闭 我一直在努力解决这个问题,但我仍然在学习JQ。PHP是我的东西!:) 此外,如果鼠标离开菜单区域,该菜单是否可以在设定的时间后重新切换?请首先尝试此(版本1): 给你所有的导航级别2一个类,而不

我试图在JQ中创建一个菜单,你点击一个链接,它会滑动切换菜单的显示。在菜单中,您可以直接链接到页面,然后展开显示其他菜单的链接。到目前为止,我已经做到了:

我现在想做的是,当你点击顶部的链接,它切换回我需要关闭所有扩展的菜单。它当前部分工作,切换时仅隐藏顶部子菜单。因此,当您向下切换时,菜单将全部关闭

我一直在努力解决这个问题,但我仍然在学习JQ。PHP是我的东西!:)

此外,如果鼠标离开菜单区域,该菜单是否可以在设定的时间后重新切换?请首先尝试此(版本1):

给你所有的导航级别2一个类,而不是一个ID(不要忘记你的CSS)

如果这没有帮助,请使用以下方法:

for(var i = 0; i < $('#nav-container').find('.nav-level-2').length; i++) {
    $('#nav-container').find('.nav-level-2').eq(i).slideUp('slow');
}
您可以在jQuery中使用
$('#nav container').find('.nav-level-2')
来获取此类的所有元素。有了它,您可以使用:

for(var i = 0; i < $('#nav-container').find('.nav-level-2').length; i++) {
    $('#nav-container').find('.nav-level-2').eq(i).slideUp('slow');
}
for(变量i=0;i<$(“#导航容器”)。查找(“.nav-level-2”)。长度;i++){
$(“#导航容器”).find(“.nav-level-2”).eq(i).slideUp('slow');
}
如果这没有帮助,请使用以下方法:

for(var i = 0; i < $('#nav-container').find('.nav-level-2').length; i++) {
    $('#nav-container').find('.nav-level-2').eq(i).slideUp('slow');
}
给你所有的nav-level-2唯一ID,将它们全部存储在一个数组中,并使用for循环关闭所有级别。如果它们已关闭,则不会设置动画:

var levelarray = new Array('nav-level-2-a', 'nav-level-2-b', 'nav-level-2-c');
for(var i = 0; i < levelarray.length; i++) {
    $('#' + levelarray[i]).slideUp('slow');
}
var-levelarray=新数组('nav-level-2-a','nav-level-2-b','nav-level-2-c');
对于(var i=0;i
首先,我看到了您的示例,我认为您已经得到了想要做的事情:)但在您的源代码中,我看到了一个严重的问题。您在多个位置使用相同的ID。对于整个文档中的元素,ID应该是单个的。如果你想用它来识别元素组,那么你可以用class或者rel等等。那太好了!谢谢是否存在这样的情况:当您在展开项上单击时,它会关闭其他展开项?所以一次只显示一个?更新了JSFIDLE:,刚刚添加了
$(“.nav-level-2”).slideUp('slow')到你的第二个功能那太棒了!!!最后一件事,如果鼠标离开导航容器区域,整个菜单是否可能在5秒后消失?当然,使用这个:现在是3000毫秒。只需更改此时间以增加或减少时间。我刚刚注意到,一旦您展开菜单项并再次点击它,它将关闭,然后立即重新打开。是否有任何方法可以使它在再次单击时收缩?谢谢