jQuery click让我回到页面顶部。但我想留在同一个地方

时间:2012-03-01 16:44:51

标签: jquery

我有一个简单的点击和显示,点击并隐藏侧边栏菜单,但当我点击它时,页面锚定在页面顶部。反正有没有阻止这个?那么当我点击菜单时,页面应该保持在浏览器中的相同位置?

(function ($) {
$.fn.SidebarMenu = function () {
    return this.each(function () {
        var menu = $(this);
        menu.find('ul li ul.active').slideDown('medium');
        menu.find('ul li > a').bind('click', function (event) {
            var ahref = $(event.currentTarget).attr('href');
            if (ahref != '#') {
                window.location.href = ahref;
            } else {
                var currentlink = $(event.currentTarget);
                if (currentlink.parent("li").find('ul.active').size() == 1) {
                    currentlink.parent("li").find('ul.active').slideUp('medium', function () {
                        currentlink.parent("li").find('ul.active').removeClass('active');
                        currentlink.removeClass('sidebar_container_content_li_arrowdown');
                        currentlink.addClass('sidebar_container_content_li_arrowup');
                    });
                }
                else {
                    show(currentlink);
                }
            }
        });
        function show(currentlink) {
            currentlink.parent().find('ul').addClass('active');
            currentlink.removeClass('sidebar_container_content_li_arrowup');
            currentlink.addClass('sidebar_container_content_li_arrowdown');
            currentlink.parent().find('ul').slideDown('medium');
        }
    });
}
})(jQuery);

感谢。

2 个答案:

答案 0 :(得分:3)

尝试Event.preventDefault,http://api.jquery.com/event.preventDefault

答案 1 :(得分:0)

event.preventDefault()添加到您的点击处理程序。

menu.find('ul li > a').bind('click', function (event) {
    event.preventDefault();
    var ahref = $(event.currentTarget).attr('href');