【问题标题】:I have a page with two sections map at the top and accordion menu at the bottom when i click accordion page is scrolling to top当我单击手风琴页面滚动到顶部时,我有一个页面,顶部有两个部分地图,底部有手风琴菜单
【发布时间】:2013-03-27 10:38:49
【问题描述】:

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

滚动手风琴菜单

【问题讨论】:

    标签: jquery


    【解决方案1】:

    您需要在单击事件函数的末尾添加return false 或event.preventDefault(),否则浏览器将跟随您单击的<a href="#"> 链接,方法是将# 附加到指示浏览器的页面URI在页面上找到 named 锚点。由于您没有提供锚名称(例如 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()
    });
    

    【讨论】:

      【解决方案2】:

      您可以使用stopPropagation、event.preventDefault or return false...
      或者只是将href 更改为javascript:void(0)。

      【讨论】:

        猜你喜欢
        • 2021-06-26
        • 2017-01-02
        • 2016-06-29
        • 1970-01-01
        • 1970-01-01
        • 2018-12-23
        • 2014-03-24
        • 2021-02-08
        • 2017-08-17
        相关资源
        最近更新 更多