我是一个菜鸟,但我正在努力学习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小时没有睡觉了。
谢谢。
答案 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
监听器。这些可能会干扰彼此。