我正在使用以下代码切换手风琴菜单,但每次点击子菜单中的某个项目时,菜单会向上滑动,而不会转到实际链接。
在上面的jsfiddle中单击MISC时,菜单会打开。但是当点击子链接时,它会立即关闭。当“返回假”时,它工作正常被删除(它是为了防止浏览器跳到页面顶部),但是有了它,子菜单就会向上滑动..?
jQuery(document).ready(function ($) {
jQuery('.menu ul').slideUp(0);
jQuery('.menu li.sub').click(function () {
var target = jQuery(this).children('a');
if(target.hasClass('menu-expanded')){
target.removeClass('menu-expanded');
}else{
jQuery('.menu-item > a').removeClass('menu-expanded');
target.addClass('menu-expanded');
}
jQuery(this).find('ul:first')
.slideToggle(350)
.end()
.siblings('li')
.find('ul')
.slideUp(350);
return false;
});
});
答案 0 :(得分:0)
使用return false;
,您告诉浏览器不要关注该链接。请改用preventDefault
。关于区别的Here's more。
http://jsfiddle.net/isherwood/Y2vM3/4/
...
jQuery(this).find('ul:first')
.slideToggle(350)
.end()
.siblings('li')
.find('ul')
.slideUp(350);
preventDefault();
});
});
另外,使用
href="javascript:void(0)"
而不是哈希。