我正在通过滚动为导航中的链接创建一个活动类。
function onScroll(event){
var scrollPosition = $(document).scrollTop();
$('.sticky-navigation-posts a').each(function () {
var currentLink = $(this);
var refElement = $(currentLink.attr("href"));
console.log(refElement);
if (refElement.position().top <= scrollPosition && refElement.position().top + refElement.height() > scrollPosition) {
$('.sticky-navigation-posts .title-wrapper .post-title a').removeClass("active");
console.log('yes!');
currentLink.addClass("active");
} else {
currentLink.removeClass("active");
console.log('no!');
}
});
}
当我console.log(refElement)
时,会记录该元素。但是,如果我console.log(refElement.position().top)
,则会抛出此错误Cannot read property 'top' of undefined
。我已经调试了一段时间了,无法弄明白。有任何想法吗?我还尝试在refElement
中包装$()
。所有这些代码都是$(document).ready()
函数中的包装。
答案 0 :(得分:1)
我添加了console.log(refElement.position().top);
并且它正确地记录到控制台,甚至所需的行为也正常工作!? http://jsfiddle.net/thesane/Dxtyu/3133/