fix(pagination): align AJAX load-more loading state with reference

Loading indication now matches the reference theme's post_ajax() contract:

- Stop overwriting the 加载更多 button label with 正在加载...; the button
  keeps its own text and the .post_ajax_loader skeleton carries the busy
  state instead.
- Add the reference fallback loader (.loading ring + 加载中...) when no
  skeleton exists in the DOM, and reinsert the skeleton after the last
  card on every page load like beforeSend does.
- Retext the loader string to 加载中... (zib__('loading')) and make the
  ajax_trigger default a translatable string.
- Route ajax-list.js / comments.js / widgets frontend.js through the
  .is-loading class instead of inline display, which outranked the class
  rule and could freeze the skeleton shut.
- Drop the search.php inline display:none that defeated .is-loading, and
  remove the unproduced .post-ajax-loader / [data-aksrt-ajax-loader] shims.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 17:23:44 +08:00
co-authored by Claude Fable 5
parent e506309434
commit b5f37d6d46
10 changed files with 59 additions and 49 deletions
+3 -2
View File
@@ -117,12 +117,13 @@
container.dataset.loading = '1';
container.setAttribute('aria-busy', 'true');
var loader = loaderOf(container);
if (loader) loader.style.display = '';
// 骨架开关走 .is-loading 类(modal-runtime.css),不写 inline display。
if (loader) loader.classList.add('is-loading');
} else {
delete container.dataset.loading;
container.setAttribute('aria-busy', 'false');
var loader = loaderOf(container);
if (loader) loader.style.display = 'none';
if (loader) loader.classList.remove('is-loading');
}
}