修复bug

This commit is contained in:
DelLevin-Home
2026-05-18 04:02:52 +08:00
parent 3f5ddde664
commit 40278c5d84
3 changed files with 21 additions and 29 deletions

View File

@@ -924,7 +924,7 @@
/* 加载更多按钮样式(用于留言板等实心弹窗) */ /* 加载更多按钮样式(用于留言板等实心弹窗) */
.load-more-btn { .load-more-btn {
display: block; display: block;
margin: 20px auto; margin: 20px auto 50px auto;
background: #fff; background: #fff;
border: 1px solid #e8e8e8; border: 1px solid #e8e8e8;
color: #666; color: #666;
@@ -945,7 +945,7 @@
/* 加载完成提示 */ /* 加载完成提示 */
.load-complete { .load-complete {
text-align: center; text-align: center;
padding: 20px 25px; padding: 20px 25px 50px 25px;
color: #bbb; color: #bbb;
font-size: 13px; font-size: 13px;
font-style: italic; font-style: italic;

View File

@@ -116,6 +116,7 @@
}); });
html += '</div>'; html += '</div>';
// 只有在还有更多数据时才显示加载更多按钮
if (hasMore) { if (hasMore) {
html += `<button class="load-more-btn" onclick="window.loadMoreBlogPosts()">点击加载更多</button>`; html += `<button class="load-more-btn" onclick="window.loadMoreBlogPosts()">点击加载更多</button>`;
} else { } else {
@@ -142,8 +143,6 @@
// 追加文章 // 追加文章
function appendPosts(posts) { function appendPosts(posts) {
const containers = document.querySelectorAll('.blog-posts-container'); const containers = document.querySelectorAll('.blog-posts-container');
const loadMoreBtns = document.querySelectorAll('.load-more-btn');
const oldTips = document.querySelectorAll('.load-complete');
if (containers.length === 0) { if (containers.length === 0) {
console.error('未找到 .blog-posts-container 容器'); console.error('未找到 .blog-posts-container 容器');
@@ -157,29 +156,29 @@
div.innerHTML = renderPostItem(post); div.innerHTML = renderPostItem(post);
container.appendChild(div.firstElementChild); container.appendChild(div.firstElementChild);
}); });
});
// 移除所有旧的加载更多按钮和提示 // 移除当前容器后的旧按钮和提示(只操作当前容器的兄弟元素)
loadMoreBtns.forEach(btn => btn.remove()); let nextSibling = container.nextElementSibling;
oldTips.forEach(tip => tip.remove()); while (nextSibling && (nextSibling.classList.contains('load-more-btn') || nextSibling.classList.contains('load-complete'))) {
const toRemove = nextSibling;
nextSibling = nextSibling.nextElementSibling;
toRemove.remove();
}
// 向所有容器后添加新的加载更多按钮或提示 // 在当前容器后添加新的加载更多按钮或提示
if (hasMore) { if (hasMore) {
containers.forEach(container => {
const btn = document.createElement('button'); const btn = document.createElement('button');
btn.className = 'load-more-btn'; btn.className = 'load-more-btn';
btn.textContent = '点击加载更多'; btn.textContent = '点击加载更多';
btn.onclick = window.loadMoreBlogPosts; btn.onclick = window.loadMoreBlogPosts;
container.after(btn); container.after(btn);
}); } else {
} else {
containers.forEach(container => {
const tip = document.createElement('div'); const tip = document.createElement('div');
tip.className = 'load-complete'; tip.className = 'load-complete';
tip.textContent = '已显示全部'; tip.textContent = '已显示全部';
container.after(tip); container.after(tip);
}); }
} });
console.log(`成功追加 ${posts.length} 篇文章到 ${containers.length} 个容器,当前页码: ${currentPage}`); console.log(`成功追加 ${posts.length} 篇文章到 ${containers.length} 个容器,当前页码: ${currentPage}`);
} }

View File

@@ -124,7 +124,7 @@
guestbookBody.innerHTML = '<div class="guestbook-loading" data-i18n="guestbook_loading">正在加载留言...</div>'; guestbookBody.innerHTML = '<div class="guestbook-loading" data-i18n="guestbook_loading">正在加载留言...</div>';
} else { } else {
// 添加加载更多按钮状态 // 添加加载更多按钮状态
const loadMoreBtn = document.querySelector('.load-more-btn'); const loadMoreBtn = guestbookBody.querySelector('.load-more-btn');
if (loadMoreBtn) { if (loadMoreBtn) {
loadMoreBtn.disabled = true; loadMoreBtn.disabled = true;
loadMoreBtn.textContent = '加载中...'; loadMoreBtn.textContent = '加载中...';
@@ -196,9 +196,8 @@
// 判断是否还有更多数据 // 判断是否还有更多数据
if (hasMore) { if (hasMore) {
html += `<button class="load-more-btn" onclick="window.loadMoreGuestbook()">点击加载更多</button>`; html += `<button class="load-more-btn" onclick="window.loadMoreGuestbook()">点击加载更多</button>`;
} else {
html += `<div class="load-complete">已显示全部</div>`;
} }
// 否则不显示任何内容
guestbookBody.innerHTML = html; guestbookBody.innerHTML = html;
@@ -271,9 +270,8 @@
// 追加留言 // 追加留言
function appendGuestbook(comments) { function appendGuestbook(comments) {
const listContainer = document.querySelector('.guestbook-list'); const listContainer = guestbookBody.querySelector('.guestbook-list');
const loadMoreBtn = document.querySelector('.load-more-btn'); const loadMoreBtn = guestbookBody.querySelector('.load-more-btn');
const allDataTip = document.querySelector('.guestbook-body > div:last-child');
if (!listContainer) return; if (!listContainer) return;
@@ -283,16 +281,12 @@
listContainer.appendChild(div.firstElementChild); listContainer.appendChild(div.firstElementChild);
}); });
// 移除旧的加载更多按钮和提示 // 移除旧的加载更多按钮
if (loadMoreBtn) { if (loadMoreBtn) {
loadMoreBtn.remove(); loadMoreBtn.remove();
} }
const oldTip = document.querySelector('.load-complete');
if (oldTip) {
oldTip.remove();
}
// 如果还有更多,添加新的加载更多按钮 // 如果还有更多,添加新的加载更多按钮;否则显示"已显示全部"
if (hasMore) { if (hasMore) {
const btn = document.createElement('button'); const btn = document.createElement('button');
btn.className = 'load-more-btn'; btn.className = 'load-more-btn';
@@ -300,7 +294,6 @@
btn.onclick = window.loadMoreGuestbook; btn.onclick = window.loadMoreGuestbook;
listContainer.after(btn); listContainer.after(btn);
} else { } else {
// 没有更多数据,显示提示
const tip = document.createElement('div'); const tip = document.createElement('div');
tip.className = 'load-complete'; tip.className = 'load-complete';
tip.textContent = '已显示全部'; tip.textContent = '已显示全部';