MediaWiki:Common.js: различия между версиями

мНет описания правки
мНет описания правки
Строка 466: Строка 466:
return text.trim().replace(/\s+/g, '-').replace(/[^a-zа-яёA-ZА-ЯЁ0-9\-]/g, '');
return text.trim().replace(/\s+/g, '-').replace(/[^a-zа-яёA-ZА-ЯЁ0-9\-]/g, '');
}
}
// Присвоение ID категориям и пунктам меню
function assignIds() {
for (var i = 0; i < categories.length; i++) {
var category = categories[i];
var categoryText = category.textContent || category.innerText;
var categoryId = generateIdFromText(categoryText);
category.setAttribute('id', categoryId);
var menu = menus[i];
var menuItems = menu.querySelectorAll('div');
for (var j = 0; j < menuItems.length; j++) {
var menuItem = menuItems[j];
var menuItemText = menuItem.textContent || menuItem.innerText;
var menuItemId = generateIdFromText(menuItemText);
menuItem.setAttribute('id', menuItemId);
}
}
}
assignIds(); // Вызов функции для присвоения ID


// Удаление класса active у всех переданных элементов
// Удаление класса active у всех переданных элементов
Строка 504: Строка 483:
if (selectedCategory) {
if (selectedCategory) {
selectedCategory.classList.add('active');
selectedCategory.classList.add('active');
var categoryClass = selectedCategory.classList[0];
var categoryClass = selectedCategory.classList[0]; // Получаем первый класс категории
var selectedMenu = document.querySelector('.' + categoryClass + '-menu');
var selectedMenu = document.querySelector('.' + categoryClass + '-menu');
if (selectedMenu) {
if (selectedMenu) {
Строка 522: Строка 501:


if (menuItem) {
if (menuItem) {
var contentClass = menuItem.className + '-content';
menuItem.classList.add('active');
var contentClass = menuItem.className.split(' ')[0] + '-content'; // Берем первый класс
var content = document.querySelector('.' + contentClass);
var content = document.querySelector('.' + contentClass);
if (content) {
if (content) {
content.classList.add('active');
content.classList.add('active');
menuItem.classList.add('active');
}
}
}
}