当我点击手风琴页面滚动到顶部时,我有一个页面顶部有两个部分地图,底部有手风琴菜单

时间:2013-03-27 10:38:49

标签: jquery

我有一个页面顶部有两个部分映射,底部有jQuery手风琴菜单当我点击手风琴菜单页面滚动到顶部时,我需要页面应该保持在同一个地方所以我可以看到jQuery手风琴菜单正常。

反正有没有阻止这个?那么当我点击菜单时,页面应该保持在浏览器中的相同位置?

menu.find('ul li > a').bind('click',function(event,ui){
    /*var ahref = $(event.currentTarget).attr('href');
    if(ahref!='#'){
        window.location.href = ahref;
    }else{*/

        var currentlink=$(event.currentTarget);
        if (currentlink.parent().find('ul.active').size()==1)
        {
            currentlink.parent().find('ul.active').slideUp('medium',function(){
               currentlink.parent().find('ul.active').removeClass('active');
            });
        }
        else if (menu.find('ul li ul.active').size()==0)
        {
            show(currentlink);
        }
        else
        {
            menu.find('ul li ul.active').slideUp('medium',function(){
                menu.find('ul li ul').removeClass('active');
                show(currentlink);
            });
        }
   /* }*/
});

滚动手风琴菜单

2 个答案:

答案 0 :(得分:1)

您需要在点击事件功能结束时添加return falseevent.preventDefault(),否则浏览器会点击您点击的<a href="#">链接,方法是附加#到页面URI,指示浏览器在页面上找到命名的锚点。由于您没有提供锚名称(例如http://www.url.com/page#而不是http://www.url.com/page#anchorname),因此浏览器会跳转到页面顶部。

例如

menu.find('ul li > a').bind('click',function(event, ui){
    // your code

    // choose one of the following lines
    return false
    event.preventDefault()
});

答案 1 :(得分:0)

您可以使用stopPropagationevent.preventDefault or return false ...
或者只需将href更改为javascript:void(0)