이 질문에 이미 답변을 하셨다면 사과드립니다. 솔루션 검색을 시도했지만 내 코드에 적합한 것을 찾을 수 없습니다. 나는 여전히 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();
});
});
내 문제는 코드의 두 번째 줄에서 var contentNav = $('.content-nav').offset().top;"Uncaught TypeError : Cannot read property 'top'of undefined"라는 오류가 발생 하기 때문에 하단의 고정 사이드 메뉴에 대한 코드 가 작동하지 않는다는 것 입니다. 사실 두 번째 줄 아래의 다른 jQuery 코드는 그 위에 배치되지 않는 한 전혀 작동하지 않습니다.
몇 가지 조사를 한 후 문제는 $('.content-nav').offset().top다른 페이지에 있기 때문에 지정된 선택기를 찾을 수 없다는 것입니다. 그렇다면 해결책을 찾을 수 없습니다.