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

мНет описания правки
мНет описания правки
Строка 567: Строка 567:
}
}
});
});
// Функция для обработки якорей
function handleAnchorChange() {
var anchor = window.location.hash.substring(1); // Получаем текущий хеш без символа #
var found = false;
// Проверка категорий
for (var i = 0; i < categories.length; i++) {
if (categories[i].id === anchor) {
switchCategory(i); // Открываем категорию
found = true;
break;
}
}
// Проверка пунктов меню, если якорь не найден в категориях
if (!found) {
for (var i = 0; i < menuItems.length; i++) {
if (menuItems[i].id === anchor) {
var categoryIndex = Array.prototype.indexOf.call(categories, menuItems[i].closest('.navigation__categories > div'));
switchCategory(categoryIndex); // Открываем категорию
switchContent(menuItems[i]);  // Открываем пункт меню
found = true;
break;
}
}
}
// Если якорь не найден, открываем первую категорию
if (!found) {
switchCategory(0);
}
}
// Проверяем якорь при загрузке страницы
window.addEventListener('hashchange', handleAnchorChange);
document.addEventListener('DOMContentLoaded', handleAnchorChange);


// Инициализация: открытие первой категории и первого пункта
// Инициализация: открытие первой категории и первого пункта