未捕获的类型错误:无法读取未定义的属性“top”
2022-08-30 05:28:44
如果这个问题已经得到回答,我很抱歉。我尝试过搜索解决方案,但找不到适合我代码的解决方案。我对jQuery还很陌生。
我有两种不同类型的粘性菜单,用于两个不同的页面。下面是两者的代码。
$(document).ready(function () {
var contentNav = $('.content-nav').offset().top;
var stickyNav = function () {
var scrollTop = $(window).scrollTop();
if (scrollTop > contentNav) {
$('.content-nav').addClass('content-nav-sticky');
} else {;
$('.content-nav').removeClass('content-nav-sticky')
}
};
stickyNav();
$(window).scroll(function () {
stickyNav();
});
});
$(document).ready(function () {
var stickyNavTop = $('.nav-map').offset().top;
// var contentNav = $('.content-nav').offset().top;
var stickyNav = function () {
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavTop) {
$('.nav-map').addClass('sticky');
// $('.content-nav').addClass('sticky');
} else {
$('.nav-map').removeClass('sticky');
// $('.content-nav').removeClass('sticky')
}
};
stickyNav();
$(window).scroll(function () {
stickyNav();
});
});
我的问题是,底部粘性侧边菜单的代码不起作用,因为第二行代码触发了一个错误,上面写着“未捕获的类型错误:无法读取未定义的属性'top'”。事实上,除非将它们放在第二行之上,否则该第二行下方没有其他jQuery代码可以正常工作。var contentNav = $('.content-nav').offset().top;
经过一些研究,我认为问题是找不到指定的选择器,因为它位于不同的页面上。如果是这样,我找不到解决方案。$('.content-nav').offset().top