一次只打开一个下拉菜单

时间:2016-07-06 12:29:10

标签: javascript jquery html drop-down-menu

我是一个菜鸟,但我正在努力学习js。一直在玩这个菜单,但我遇到了一个问题:使用我的代码,如何在移动设备上实现一次只打开一个下拉列表的行为?

$(".menu > ul > li").click(function () {
    if ($(window).width() <= 943) {
        $(this).children("ul").fadeToggle(150);
    }
});

这是我的代码演示:http://jsbin.com/sesuda/edit?html,output

此模板的工作方式是保持所有下拉列表打开。

我尝试过:使用not(this)只打开单击的下拉项。 此外,使用next(element)只能使下一个兄弟(下拉链接旁边的下拉内容)可见。

非常感谢任何帮助。 免责声明:对于破碎的英语感到抱歉,这不是我的母语,而且我已经24小时没有睡觉了。

谢谢。

2 个答案:

答案 0 :(得分:1)

你应淡出所有元素,然后淡入点击的

$(".menu > ul > li").click(function () {
    if ($(window).width() <= 943) {
        $(".menu > ul > li > ul").fadeOut(150);
        $(this).children("ul").fadeToggle(150);
    }
});

答案 1 :(得分:0)

它适用于我(Firefox 47)。但我注意到你有一个.click监听器和一个.hover监听器。这些可能会干扰彼此。