一次只能打开一个下拉列表

Only one dropdown open at a time

本文关键字:一个 下拉列表 一次      更新时间:2023-09-26

我是一个菜鸟,但我正在尝试学习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小时没有睡觉了。

谢谢。

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

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

它对我来说工作正常(Firefox 47)。但我注意到你有一个.click的听众和一个.hover的听众。这些可能会相互干扰。

相关文章: