MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 486: | Строка 486: | ||
} | } | ||
// Вызов функции для присвоения ID | |||
assignIds(); | |||
// Удаление класса active у всех переданных элементов | // Удаление класса active у всех переданных элементов | ||
| Строка 569: | Строка 570: | ||
// Функция для обработки якорей | // Функция для обработки якорей | ||
function handleAnchorChange() { | function handleAnchorChange() { | ||
var anchor = window.location.hash.substring(1); // Получаем текущий хеш без символа # | |||
var decodedAnchor = decodeURIComponent(anchor); // Декодируем хеш | |||
var found = false; | |||
// Проверка категорий | |||
for (var i = 0; i < categories.length; i++) { | |||
if (categories[i].id === decodedAnchor) { // Сравниваем с декодированным значением | |||
switchCategory(i); // Открываем категорию | |||
found = true; | |||
break; | |||
} | |||
} | |||
// Проверка пунктов меню, если якорь не найден в категориях | |||
if (!found) { | |||
for (var i = 0; i < menuItems.length; i++) { | |||
if (menuItems[i].id === decodedAnchor) { // Сравниваем с декодированным значением | |||
// Найти индекс категории, к которой принадлежит пункт меню | |||
var categoryIndex = Array.prototype.indexOf.call(categories, menuItems[i].closest('.navigation__menu-item').previousElementSibling); | |||
if (categoryIndex !== -1) { | |||
switchCategory(categoryIndex); // Открываем категорию | |||
switchContent(menuItems[i]); // Открываем пункт меню | |||
} | |||
found = true; | |||
break; | |||
} | |||
} | |||
} | |||
// Если якорь не найден, открываем первую категорию | |||
if (!found) { | |||
switchCategory(0); | |||
} | } else { | ||
// Если якорь был найден, повторно переключаем контент | |||
switchContent(document.getElementById(decodedAnchor)); | |||
} | |||
} | |||
// Проверяем якорь при загрузке страницы | // Проверяем якорь при загрузке страницы | ||