我的代码总是给我这个错误:
你可以帮我解决这个问题吗?这是我的代码:未捕获的TypeError:无法读取未定义的属性“top”
autopostback = true
这是html代码:
autopostback = true
抱歉,如果没有html代码发布它
答案 0 :(得分:1)
由于并非所有链接都将其href值作为有效的CSS选择器,因此在访问position
之前,您必须检查是否已选择某些内容。试试这个:
$('.header-body a').each(function () {
var currLink = $(this);
var refElement = $(currLink.attr("href"));
if(!refElement.length) return; // if the length is 0 (nothing selected) skip the rest of this iteration where the accessing of the position happens
if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
$('.header-body a').removeClass("active");
currLink.addClass("active");
} else {
currLink.removeClass("active");
}
});
答案 1 :(得分:0)
position()返回undefined
,因此没有&#34; top&#34;属性。
答:您的选择器导致错误。
要解决此问题,您可以测试refElement.position()
是否为真undefined
检查出来:
$('woobaloobadubdub')
Returns: []
$('woobaloobadubdub').position()
Returns: undefined
$('woobaloobadubdub').position().top
Returns: Uncaught TypeError: Cannot read property 'top' of undefined(…)