我们有一些页面使用ajax来加载内容,并且在某些情况下需要深度链接到页面。与其链接到“用户”并告诉人们单击“设置”,不如将其链接到user.aspx#settings,这很有帮助。
为了使人们能够提供指向各节的正确链接(以获取技术支持等),我将其设置为在单击按钮时自动修改URL中的哈希。当然,唯一的问题是,发生这种情况时,它还会将页面滚动到该元素。
有没有办法禁用此功能?到目前为止,这是我目前的做法。
$(function(){
    //This emulates a click on the correct button on page load
    if(document.location.hash){
     $("#buttons li a").removeClass('selected');
     s=$(document.location.hash).addClass('selected').attr("href").replace("javascript:","");
     eval(s);
    }
    //Click a button to change the hash
    $("#buttons li a").click(function(){
            $("#buttons li a").removeClass('selected');
            $(this).addClass('selected');
            document.location.hash=$(this).attr("id")
            //return false;
    });
});
我曾希望这样做return false;可以阻止页面滚动-但这只会使链接根本不起作用。所以这只是现在注释掉了,所以我可以导航。
有任何想法吗?