ขออภัยหากคำถามนี้ได้รับคำตอบแล้ว ฉันได้ลองค้นหาวิธีแก้ไขแล้ว แต่ไม่พบสิ่งที่เหมาะกับรหัสของฉัน ฉันยังใหม่กับ 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
ไม่พบตัวเลือกที่ระบุเนื่องจากอยู่ในหน้าอื่น ถ้าเป็นเช่นนั้นฉันไม่สามารถหาทางออกได้