subtab bug fix

This commit is contained in:
Ali 2026-01-12 18:57:01 +04:00
parent 994d44cdaf
commit 5cf9e982dd
1 changed files with 24 additions and 9 deletions

View File

@ -169,24 +169,34 @@ function setup_custom_subtabs(wrapper, currentDoctype) {
// Function to setup main tab handler // Function to setup main tab handler
function setupMainTabHandler() { function setupMainTabHandler() {
wrapper.off("shown.bs.tab.customsubtabs") // Удаляем старый обработчик
.on("shown.bs.tab.customsubtabs", "button.nav-link:not(.sub-tab button.nav-link), a.nav-link:not(.sub-tab a.nav-link)", function(event) { wrapper.off("shown.bs.tab.customsubtabs");
// Регистрируем новый на wrapper без делегирования
wrapper.on("shown.bs.tab.customsubtabs", function(event) {
const button = event.target; const button = event.target;
const tabId = button.getAttribute("aria-controls"); const $button = $(button);
const li = $(button).closest("li.nav-item"); const li = $button.closest("li.nav-item");
// If this is a subtab - ignore // If this is a subtab - ignore
if (li.hasClass("sub-tab")) { if (li.hasClass("sub-tab")) {
return; return;
} }
const tabId = button.getAttribute("aria-controls");
console.log('shown.bs.tab сработал для:', {
text: $button.text().trim(),
tabId: tabId,
isSubtab: li.hasClass("sub-tab")
});
// ИСПРАВЛЕНИЕ: Убираем active классы со всех субтабов и их контента // ИСПРАВЛЕНИЕ: Убираем active классы со всех субтабов и их контента
wrapper.find(".sub-tab").removeClass("active"); wrapper.find(".sub-tab").removeClass("active");
wrapper.find(".sub-tab button.nav-link, .sub-tab a.nav-link") wrapper.find(".sub-tab button.nav-link, .sub-tab a.nav-link")
.removeClass("active") .removeClass("active")
.attr("aria-selected", "false"); .attr("aria-selected", "false");
// Скрываем контент всех субтабов // Скрываем контент всех субтабов
wrapper.find(".sub-tab").each(function() { wrapper.find(".sub-tab").each(function() {
const subtabButton = getTabLink($(this)); const subtabButton = getTabLink($(this));
@ -195,10 +205,15 @@ function setup_custom_subtabs(wrapper, currentDoctype) {
$(`#${subtabContentId}`).removeClass("active show"); $(`#${subtabContentId}`).removeClass("active show");
} }
}); });
// Show/hide subtabs // Show/hide subtabs
wrapper.find(".sub-tab-container").each(function() { wrapper.find(".sub-tab-container").each(function() {
const containerParentId = $(this).attr("data-parent-id"); const containerParentId = $(this).attr("data-parent-id");
console.log('Проверка контейнера:', {
containerParentId: containerParentId,
tabId: tabId,
match: containerParentId === tabId
});
if (containerParentId === tabId) { if (containerParentId === tabId) {
$(this).removeClass("subtab-hidden"); $(this).removeClass("subtab-hidden");
} else { } else {