fix(frontend): close single 1:1 residuals without legacy paths

Unify TOC ownership, real video episode list, slider overlay, single-query related list, Zibll user-card after-box, and new-route subtitle/meta contracts.
This commit is contained in:
kate522 committed 2026-07-13 13:18:19 +08:00
1 parent 48f7436030
commit 5ce43c4326
10 files changed
+1373 -1298

No files matched your search

+15 -3
View File
@@ -220,9 +220,16 @@
if (!switchBtn) return;
var container = switchBtn.closest('.aksrt-video') || switchBtn.closest('[data-aksrt-video]');
// Single cover: episodes sit in .single-video-footer; player is sibling under .single-video
if (!container) {
var singleVideo = switchBtn.closest('.single-video, .single-head-cover');
if (singleVideo) {
container = singleVideo.querySelector('.aksrt-video, [data-aksrt-video]');
}
}
if (!container) return;
var src = switchBtn.dataset.src || switchBtn.getAttribute('href');
var src = switchBtn.dataset.src || switchBtn.getAttribute('video-url') || switchBtn.getAttribute('href');
if (!src) return;
e.preventDefault();
@@ -237,9 +244,14 @@
}
// 高亮当前集
var siblings = container.parentElement ? container.parentElement.querySelectorAll('.switch-video, .switch-iframe') : [];
siblings.forEach(function (btn) { btn.classList.remove('is-active'); });
var scope = switchBtn.closest('.featured-video-episode') || (container.parentElement || document);
var siblings = scope.querySelectorAll('.switch-video, .switch-iframe');
siblings.forEach(function (btn) {
btn.classList.remove('is-active');
btn.classList.remove('active');
});
switchBtn.classList.add('is-active');
switchBtn.classList.add('active');
});
// ── Public API ──