Javascript 锚未按预期工作

Javascript 锚未按预期工作,javascript,jquery,html,Javascript,Jquery,Html,我的锚有问题。它跳转到页面的中间-没有平滑的滚动或什么都没有。我读到一些东西,当你的不够长时,它将无法滚动,因此我尝试将其调高,但仍然没有任何效果 HTML 有两个元素具有相同的id属性。这是禁止的,会给你带来麻烦。从中的锚中移除id,一切都会好起来的 <li><a href="#contact" rel="" class="anchorLink">Contact</a></li> 是实际调用了单击事件,还是在渲染元素之前应用了单击?我没有调用它

我的锚有问题。它跳转到页面的中间-没有平滑的滚动或什么都没有。我读到一些东西,当你的
不够长时,它将无法滚动,因此我尝试将其调高,但仍然没有任何效果

HTML


有两个元素具有相同的
id
属性。这是禁止的,会给你带来麻烦。从
  • 中的锚中移除
    id
    ,一切都会好起来的

    <li><a href="#contact" rel="" class="anchorLink">Contact</a></li>
    

    是实际调用了单击事件,还是在渲染元素之前应用了单击?我没有调用它。我的脚本在外部文件中,就在标记之前。编辑:lied,在jquery之后,它在顶部。我删除了双ID,现在它将转到联系人表单,但仍然没有平滑的滚动。有什么想法吗?看一下删除dupe id的程序,它运行得很好:我错过了注释,您需要将代码包装在ready中。。。和
    $(this).attr(“href”)
    $.attr()
    刚刚在我的评论中写道我删除了它,现在它跳到了正确的位置,但是仍然没有平滑滚动。有什么建议吗?@user2983295有平滑的滚动。您是否查看了我的JSFIDLE示例?是否使用任何类型的
    onload
    来包装脚本?查看我的编辑。一旦我添加了此$(文档)。准备就绪,它就不再工作了。既然它从未工作过,您怎么知道它不再工作了?
    $(document).ready(function () {
        $(document).on("click", 'a[href^="#"]', function () {
            $('html, body').animate({
                scrollTop: $($.attr(this, 'href')).offset().top
            }, 500);
            return false;
        });
    });
    
    <li><a href="#contact" rel="" class="anchorLink">Contact</a></li>
    
    $(function() {
        $('a').click(function () {
        $('html, body').animate({
            scrollTop: $($.attr(this, 'href')).offset().top
        }, 500);
            return false;
        });
    });