修复搜索功能中的变量作用域问题

将局部变量pages改为全局变量,解决搜索时"pages is not defined"的错误
This commit is contained in:
Zuoling Rong
2025-05-03 23:37:03 +08:00
parent 5949d08964
commit ab31befdf5

View File

@@ -7,6 +7,7 @@ document.addEventListener('DOMContentLoaded', () => {
let isSearchOpen = false; let isSearchOpen = false;
let isLightTheme = false; // 主题状态 let isLightTheme = false; // 主题状态
let isSidebarCollapsed = false; // 侧边栏折叠状态 let isSidebarCollapsed = false; // 侧边栏折叠状态
let pages; // 页面元素的全局引用
// 搜索索引,用于提高搜索效率 // 搜索索引,用于提高搜索效率
let searchIndex = { let searchIndex = {
@@ -135,7 +136,10 @@ document.addEventListener('DOMContentLoaded', () => {
try { try {
// 为每个页面创建索引 // 为每个页面创建索引
const pages = document.querySelectorAll('.page'); if (!pages) {
pages = document.querySelectorAll('.page');
}
pages.forEach(page => { pages.forEach(page => {
if (page.id === 'search-results') return; if (page.id === 'search-results') return;
@@ -239,7 +243,10 @@ document.addEventListener('DOMContentLoaded', () => {
// 使用 RAF 确保动画流畅 // 使用 RAF 确保动画流畅
requestAnimationFrame(() => { requestAnimationFrame(() => {
const pages = document.querySelectorAll('.page'); if (!pages) {
pages = document.querySelectorAll('.page');
}
pages.forEach(page => { pages.forEach(page => {
const shouldBeActive = page.id === pageId; const shouldBeActive = page.id === pageId;
if (shouldBeActive !== page.classList.contains('active')) { if (shouldBeActive !== page.classList.contains('active')) {
@@ -582,7 +589,7 @@ document.addEventListener('DOMContentLoaded', () => {
const navItems = document.querySelectorAll('.nav-item'); const navItems = document.querySelectorAll('.nav-item');
const navItemWrappers = document.querySelectorAll('.nav-item-wrapper'); const navItemWrappers = document.querySelectorAll('.nav-item-wrapper');
const submenuItems = document.querySelectorAll('.submenu-item'); const submenuItems = document.querySelectorAll('.submenu-item');
const pages = document.querySelectorAll('.page'); pages = document.querySelectorAll('.page');
// 初始化主题 // 初始化主题
initTheme(); initTheme();