我需要为手机制作多层子菜单的菜单。这是动态菜单,所以我不能向html添加更多的类。当我单击有子菜单的元素时,菜单正在向下滑动。子菜单:
> ul.sub-menu但是,当我想单击同一节点中的另一个(更深的)元素时,所有的节点菜单都将转到slideUp。
这是我的代码:jsFiddle
例如,:
第一个> 03 >(关闭)>第一个>(打开03 )> 03-02 >(关闭)>第一个>03>(关闭)>第一个>元素03-02-02的节点已经打开。
谢谢你的提前帮助
完全解决方案: jsFiddle
发布于 2015-04-02 13:46:30
试着用这个来解决问题
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();
}
});发布于 2015-04-02 13:34:35
您可以尝试将单击事件绑定到每个a(而不是li),并找到要使用siblings()函数向上/向下滑动的子菜单。
您还可以使用slideToggle()打开/关闭子菜单。只有当存在同级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();
});https://stackoverflow.com/questions/29413802
复制相似问题