-2

我有一个页面,顶部有两个部分地图,底部有 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);
            });
        }
   /* }*/
});

滚动手风琴菜单

4

2 回答 2

1

您需要在单击事件函数的末尾添加一个return false或,否则浏览器将通过附加到页面 URI 来跟踪您单击的链接,该 URI 指示浏览器在页面上找到命名的锚点。由于您没有提供锚名称(例如,而不是),因此浏览器会跳转到页面顶部。event.preventDefault()<a href="#">#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()
});
于 2013-03-27T10:41:22.813 回答
0

您可以使用stopPropagationevent.preventDefault 或 return false ...
或者只是将其更改hrefjavascript:void(0).

于 2013-03-27T10:40:42.643 回答