一次只能打开一个下拉列表
Only one dropdown open at a time
我是一个菜鸟,但我正在尝试学习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
的听众。这些可能会相互干扰。
相关文章:
- 如何使用jquery将所选项目从一个下拉组列表(optgroup)移动到另一个下拉列表(optgroup)
- 在另一个下拉列表中的选择上切换下拉列表中选项的可见性
- 引导程序在单击另一个下拉列表时关闭下拉列表
- 如何只制作一个下拉列表在单击时下拉
- 如何使用 asp.net 中的另一个下拉列表更改下拉列表选定的索引和可见性
- 如何填充下拉列表,从javascript中的另一个下拉列表中排除任何一个选项
- 选择“第一个下拉列表”以与另一个下拉列表的值相同
- 我创建了一个下拉列表,以及如何显示所选项目的其他列数据
- 如何根据另一个下拉列表的选择来填充多个下拉列表
- 如何从另一个下拉列表中隐藏选择基于下拉列表的值
- Dropdown基于jsp Struts中的另一个下拉列表
- 如何 从另一个下拉列表中选择一个值时禁用下拉值
- 使用 ajax 和 JSP Servlet 根据选择的上一个下拉列表填充下拉列表
- 如何创建共享单个列表的链接下拉列表,并确保只能在一个下拉列表中选择每个值
- 将下拉列表中的值添加到 KnockoutJS 中另一个下拉列表中的任何值集
- 如何将一个模式中下拉列表中的选定值传递到另一个模式 t 中的另一个下拉列表
- 根据另一个下拉列表中的选择从数据库下拉下拉选项
- 从 xml 文件创建一个下拉列表,不带重复值.我需要数组吗?
- jQuery根据条件不显示下一个下拉列表
- 如果另一个下拉列表选择发生更改,则重置另一个下拉列表