MediaWiki:Common.js: Difference between revisions
From Ultimate Dragon Ball Online Wiki
Ravenalien (talk | contribs) No edit summary |
Ravenalien (talk | contribs) No edit summary |
||
| Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
$(document).ready(function() { | |||
'use strict'; | 'use strict'; | ||
function | // Main tab click handler | ||
// Main tab | $('.tab-button').click(function(e) { | ||
e.preventDefault(); | |||
var targetId = $(this).data('target'); | |||
if ($(this).closest('.tab-navigation').length) { | |||
// Main tab clicked | |||
$('.tab-navigation .tab-button').removeClass('active'); | |||
$('.tab-pane').removeClass('active'); | |||
$(this).addClass('active'); | |||
$('#' + targetId).addClass('active'); | |||
// Reset sub-tabs | |||
var $subNav = $('#' + targetId).find('.sub-tab-navigation'); | |||
if ($subNav.length) { | |||
var $firstSubTab = $subNav.find('.tab-button').first(); | |||
var $ | |||
$subNav.find('.tab-button').removeClass('active'); | $subNav.find('.tab-button').removeClass('active'); | ||
$ | $subNav.find('.tab-pane').removeClass('active'); | ||
$ | $firstSubTab.addClass('active'); | ||
$('#' + | $('#' + $firstSubTab.data('target')).addClass('active'); | ||
} | } | ||
}); | } else { | ||
// Sub tab clicked | |||
var $subNav = $(this).closest('.sub-tab-navigation'); | |||
$subNav.find('.tab-button').removeClass('active'); | |||
$subNav.find('.tab-pane').removeClass('active'); | |||
$(this).addClass('active'); | |||
$('#' + targetId).addClass('active'); | |||
} | |||
}); | |||
// Set initial states | |||
$('.tab-navigation').each(function() { | |||
var $nav = $(this); | |||
var $activeTab = $nav.find('.tab-button.active'); | |||
if (!$activeTab.length) { | |||
$activeTab = $nav.find('.tab-button').first(); | |||
$activeTab.addClass('active'); | |||
$('#' + $activeTab.data('target')).addClass('active'); | |||
} | |||
// Initialize sub-tabs | |||
$ | var $mainContent = $('#' + $activeTab.data('target')); | ||
$('#' + $ | var $subNav = $mainContent.find('.sub-tab-navigation'); | ||
if ($subNav.length) { | |||
var $activeSubTab = $subNav.find('.tab-button.active'); | |||
if (!$activeSubTab.length) { | |||
$activeSubTab = $subNav.find('.tab-button').first(); | |||
$activeSubTab.addClass('active'); | |||
$('#' + $activeSubTab.data('target')).addClass('active'); | |||
} | } | ||
} | |||
} | |||
}); | }); | ||
}); | }); | ||
Revision as of 06:43, 26 February 2025
/* Any JavaScript here will be loaded for all users on every page load. */
$(document).ready(function() {
'use strict';
// Main tab click handler
$('.tab-button').click(function(e) {
e.preventDefault();
var targetId = $(this).data('target');
if ($(this).closest('.tab-navigation').length) {
// Main tab clicked
$('.tab-navigation .tab-button').removeClass('active');
$('.tab-pane').removeClass('active');
$(this).addClass('active');
$('#' + targetId).addClass('active');
// Reset sub-tabs
var $subNav = $('#' + targetId).find('.sub-tab-navigation');
if ($subNav.length) {
var $firstSubTab = $subNav.find('.tab-button').first();
$subNav.find('.tab-button').removeClass('active');
$subNav.find('.tab-pane').removeClass('active');
$firstSubTab.addClass('active');
$('#' + $firstSubTab.data('target')).addClass('active');
}
} else {
// Sub tab clicked
var $subNav = $(this).closest('.sub-tab-navigation');
$subNav.find('.tab-button').removeClass('active');
$subNav.find('.tab-pane').removeClass('active');
$(this).addClass('active');
$('#' + targetId).addClass('active');
}
});
// Set initial states
$('.tab-navigation').each(function() {
var $nav = $(this);
var $activeTab = $nav.find('.tab-button.active');
if (!$activeTab.length) {
$activeTab = $nav.find('.tab-button').first();
$activeTab.addClass('active');
$('#' + $activeTab.data('target')).addClass('active');
}
// Initialize sub-tabs
var $mainContent = $('#' + $activeTab.data('target'));
var $subNav = $mainContent.find('.sub-tab-navigation');
if ($subNav.length) {
var $activeSubTab = $subNav.find('.tab-button.active');
if (!$activeSubTab.length) {
$activeSubTab = $subNav.find('.tab-button').first();
$activeSubTab.addClass('active');
$('#' + $activeSubTab.data('target')).addClass('active');
}
}
});
});