子菜单链接关闭菜单而不是指向指定的链接

时间:2013-08-08 13:01:45

标签: jquery menu

我正在使用以下代码切换手风琴菜单,但每次点击子菜单中的某个项目时,菜单会向上滑动,而不会转到实际链接。

http://jsfiddle.net/Y2vM3/

在上面的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;
    });
});

1 个答案:

答案 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)"

而不是哈希。