MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 592: | Строка 592: | ||
if (!hash) return; // Выход, если якорь пустой | if (!hash) return; // Выход, если якорь пустой | ||
// | // Попытка найти пункт меню или категорию с соответствующим ID | ||
var | var targetMenuItem = document.getElementById(hash); | ||
if ( | if (targetMenuItem) { | ||
var categoryIndex = Array.from( | // Если это пункт меню, нужно сначала открыть его категорию | ||
var menu = targetMenuItem.closest('.navigation__menu-item'); | |||
var categoryIndex = Array.from(menus).indexOf(menu); | |||
if (categoryIndex !== -1) { | if (categoryIndex !== -1) { | ||
switchCategory(categoryIndex); | switchCategory(categoryIndex); | ||
switchContent(targetMenuItem); // Открытие пункта меню | |||
targetMenuItem.scrollIntoView(); // Прокрутка к пункту | |||
} | } | ||
} | } else { | ||
// Поиск категории по ID | |||
var targetCategory = document.getElementById(hash); | |||
if (targetCategory) { | |||
var categoryIndex = Array.from(categories).indexOf(targetCategory); | |||
if ( | |||
var categoryIndex = Array.from( | |||
if (categoryIndex !== -1) { | if (categoryIndex !== -1) { | ||
switchCategory(categoryIndex); // Открытие категории | |||
switchCategory(categoryIndex | targetCategory.scrollIntoView(); // Прокрутка к категории | ||
} | } | ||
} | } | ||
| Строка 623: | Строка 616: | ||
} | } | ||
// | // Открытие первой категории и первого пункта | ||
if (categories.length > 0) { | if (categories.length > 0) { | ||
switchCategory(currentCategoryIndex); | switchCategory(currentCategoryIndex); | ||