我遇到了一些与Uncaught TypeError: Cannot read property 'top' of undefined
错误相似的问题,但我无法找到解决自己问题的方法。在我的JS文件中,有以下代码:
$(document).ready(function() {
$(document).on('scroll', function() {
var verticalPosition = $(window).scrollTop();
$('#sitenav > ul > li > a').each(function() {
if ( verticalPosition >= $($.attr(this, 'href')).offset().top - 85) {
$('#sitenav > ul > li > a').not(this).parent().removeClass('current-menu-item'); // remove class from parent <li>
$(this).parent().addClass('current-menu-item'); // add class to parent <li>
}
});
});
});
问题似乎是这一行:
if ( verticalPosition >= $($.attr(this, 'href')).offset().top - 85) {
代码工作正常,但我不断说错误:
未捕获的TypeError:无法读取属性&#39; top&#39;未定义的
滚动时发现的错误数量也在不断增加。在我不断收到这些错误以及如何修复错误时,为什么代码可以工作的任何提示?
这是JS引用的HTML部分:
<nav id="sitenav" class="col-lg-9 col-md-9 pull-right">
<ul class="list-unstyled text-right">
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
<!-- etc. -->
</ul>
</nav>