Jquery-未捕获类型错误:无法读取属性';顶部';未定义的

Jquery-未捕获类型错误:无法读取属性';顶部';未定义的,jquery,scroll,error-handling,Jquery,Scroll,Error Handling,我看过很多有这个标题的作品,但没有一个对我的具体问题有帮助。我不知道是什么问题。我跟随youtube教程,做了他们所做的事情。但是当我点击我的锚链接时,什么也没有发生,我在控制台中得到了这个错误:uncaughttypeerror:cannotreadproperty'top'of undefined 这是我的Javascript: <script> $(function() { $("a").click(function() { if

我看过很多有这个标题的作品,但没有一个对我的具体问题有帮助。我不知道是什么问题。我跟随youtube教程,做了他们所做的事情。但是当我点击我的锚链接时,什么也没有发生,我在控制台中得到了这个错误:uncaughttypeerror:cannotreadproperty'top'of undefined

这是我的Javascript:

<script>
    $(function() {
        $("a").click(function() {
            if(this.hash) {
                var hash = this.hash.substr(1);

                var $toElement = $("a[name="+hash+"]");
                var toPosition = $toElement.position().top;

                $("body,html").animate({
                    scrollTop : toPosition
                },2000,"easeOutExpo");
                return false;
            } 
        });
    });
</script>

$(函数(){
$(“a”)。单击(函数(){
if(this.hash){
var hash=this.hash.substr(1);
var$toElement=$([name=“+hash+”]);
变量toPosition=$toElement.position().top;
$(“body,html”).animate({
滚动顶:定位
},2000年,“easoutexpo”);
返回false;
} 
});
});

问题是您的目标元素没有名称属性:

<a href="#about_me" id="scroll_down">About Me</a>

在fiddle中,您必须使用easing代码,因为您正在使用的easing在jQuery中不可用,因此。

问题在于您的目标元素没有name属性:

<a href="#about_me" id="scroll_down">About Me</a>
在fiddle中,您必须使用easing代码,因为您正在使用的easing在jQuery中不可用,所以。

未定义 由于访问未定义的元素的“top”样式而发生错误。 这是零钱

var $toElement = $("a[name="+hash+"]");

希望它能解决您的问题

除了未定义的 由于访问未定义的元素的“top”样式而发生错误。 这是零钱

var $toElement = $("a[name="+hash+"]");


希望它能解决你的问题

你的回答帮助我找到了解决办法。我试图让它滚动到div,而不是href或a标记。我终于把它整理好了,它可以滚动到正确的位置,现在我的网站上所有的按钮都可以使用了。谢谢所有帮助我做到这一点的人。

你的回答帮助我找到了解决办法。我试图让它滚动到div,而不是href或a标记。我终于把它整理好了,它可以滚动到正确的位置,现在我的网站上所有的按钮都可以使用了。谢谢,所有帮助我做到这一点的人。

$(“a[name='“+hash+'”)更改为this。您的目标元素没有name属性。现在我得到:uncaughttypeerror:jQuery.easing[this.easing]不是函数
$([name='+hash+'])更改为this。目标元素没有name属性。现在我得到:Uncaught TypeError:jQuery.easing[this.easing]不是函数现在我得到:Uncaught TypeError:jQuery.easing[this.easing]不是函数function@Mattlee检查此更新的小提琴。你需要在你的文件中有这些代码,或者只是对文件做一个引用,我必须把它们直接复制到html中才能工作。如果我只是把它链接到一个单独的页面上,它就不起作用了。不管怎样,我做了,但它并没有完全按照我的意思做。它在id为“向下滚动”的a元素处停止。我希望它停止在浏览器顶部的about_me div的顶部。好的,我得到了我想要的工作方式。我仍然希望我不必将整个代码粘贴到我的html中。我必须这样做,并将其链接到一个单独的文件中。或者它不起作用。@MattLee你能告诉我你是如何在页面中添加你的文件的吗?我的建议是将此文件添加到脚本之前和jQuery库之下function@Mattlee检查此更新的小提琴。你需要在你的文件中有这些代码,或者只是对文件做一个引用,我必须把它们直接复制到html中才能工作。如果我只是把它链接到一个单独的页面上,它就不起作用了。不管怎样,我做了,但它并没有完全按照我的意思做。它在id为“向下滚动”的a元素处停止。我希望它停止在浏览器顶部的about_me div的顶部。好的,我得到了我想要的工作方式。我仍然希望我不必将整个代码粘贴到我的html中。我必须这样做,并将其链接到一个单独的文件中。或者它不起作用。@MattLee你能告诉我你是如何在页面中添加你的文件的吗?我的建议是在脚本之前和jQuery库下面添加这个文件。
var $toElement = $("a[href=#"+hash+"]");