jQuery - 移动设备的多级菜单
jQuery - multi level menu for mobile
我需要为移动设备制作带有多级子菜单的菜单。
这是动态菜单,所以我不能再添加 类 到 html。
当我单击具有子菜单的元素时,菜单向下滑动:
> ul.sub-menu
但是当我想单击同一节点中的另一个(更深的)元素时,所有该节点菜单都会向上滑动。
这是我的代码:
jsFiddle
例如:
First > 03 > (closing) > First > (03 is opened) > 03-02 > (closing) > First > 03 > (closing) > First > 我的元素 03-02-02 的节点已经打开。
感谢您的提前帮助
FULL SOLUTION HERE:
jsFiddle
您可以尝试将点击事件绑定到每个 a
(而不是 li
),并找到子菜单以使用 siblings()
功能滑动 up/down。
您还可以使用 slideToggle()
到 open/close 子菜单。
仅当存在同级 ul
.
时才会阻止点击
var test1 = $('#menu-mobile-slide li > a');
test1.on('click', function(e) {
var mobileMenu = $(this).siblings('ul');
if (mobileMenu.length > 0) {
e.preventDefault();
}
mobileMenu.slideToggle();
});
尝试使用它来解决问题
var test1 = $( '#menu-mobile-slide ul.menu li' );
test1.on( 'click', function(e) {
e.preventDefault();
var mobileMenu = $(e.target).parent().find( '> ul.sub-menu' );
if( mobileMenu.css('display') == 'none' ) {
mobileMenu.slideDown();
e.stopPropagation();
} else {
mobileMenu.slideUp();
e.stopPropagation();
}
});
我需要为移动设备制作带有多级子菜单的菜单。 这是动态菜单,所以我不能再添加 类 到 html。 当我单击具有子菜单的元素时,菜单向下滑动:
> ul.sub-menu
但是当我想单击同一节点中的另一个(更深的)元素时,所有该节点菜单都会向上滑动。
这是我的代码: jsFiddle
例如:
First > 03 > (closing) > First > (03 is opened) > 03-02 > (closing) > First > 03 > (closing) > First > 我的元素 03-02-02 的节点已经打开。
感谢您的提前帮助
FULL SOLUTION HERE: jsFiddle
您可以尝试将点击事件绑定到每个 a
(而不是 li
),并找到子菜单以使用 siblings()
功能滑动 up/down。
您还可以使用 slideToggle()
到 open/close 子菜单。
仅当存在同级 ul
.
var test1 = $('#menu-mobile-slide li > a');
test1.on('click', function(e) {
var mobileMenu = $(this).siblings('ul');
if (mobileMenu.length > 0) {
e.preventDefault();
}
mobileMenu.slideToggle();
});
尝试使用它来解决问题
var test1 = $( '#menu-mobile-slide ul.menu li' );
test1.on( 'click', function(e) {
e.preventDefault();
var mobileMenu = $(e.target).parent().find( '> ul.sub-menu' );
if( mobileMenu.css('display') == 'none' ) {
mobileMenu.slideDown();
e.stopPropagation();
} else {
mobileMenu.slideUp();
e.stopPropagation();
}
});