Javascript 单击定位链接后,地址栏中的URL未更新

Javascript 单击定位链接后,地址栏中的URL未更新,javascript,jquery,html,Javascript,Jquery,Html,我正在使用一个小jQuery来平滑滚动到锚定链接。这样做很有效,但单击链接不会更新地址栏中的URL。我希望URL更新为包含已单击链接的新哈希 我在这里发现了类似的问题,但它们的原始代码与我的代码有很大的不同,我不知道如何在我的代码中实现它 $('a[href^=“#“]”)。单击(函数(){ $('html,body')。设置动画({ scrollTop:$('[name=“'+$.attr(this,'href').substr(1)+'“]')).offset().top }, 800);

我正在使用一个小jQuery来平滑滚动到锚定链接。这样做很有效,但单击链接不会更新地址栏中的URL。我希望URL更新为包含已单击链接的新哈希

我在这里发现了类似的问题,但它们的原始代码与我的代码有很大的不同,我不知道如何在我的代码中实现它

$('a[href^=“#“]”)。单击(函数(){
$('html,body')。设置动画({
scrollTop:$('[name=“'+$.attr(this,'href').substr(1)+'“]')).offset().top
}, 800);
返回false;
});

p{
边缘底部:200px;
}
锚1

主播2

锚定3

锚定4


由于在单击处理程序中有
返回false
,链接的默认行为被覆盖。这就是位置栏不更新URL的原因

您可以手动编辑URL的哈希部分:

$('a[href^="#"]').click(function () {
    $('html, body').animate({
        scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top
    }, 800);

    // update the URL in location bar
    window.location.hash = $.attr(this, 'href').substr(1);

    return false;
});