我基於滾動導航中的鏈接的活動類。無法讀取未定義鏈接的屬性「頂部」href
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()
函數中。
你確定它是可見的嗎? 「jQuery不支持獲取隱藏元素的位置座標,也不支持在body元素上設置邊框,邊距或填充。」# – anolsi
元素位於頁面上。未隱藏。 – Josh
可以肯定的,你可以做''的'console.log' refElement.is(':visible')' – anolsi