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

мНет описания правки
мНет описания правки
Строка 453: Строка 453:
var $currentList = $toc;  
var $currentList = $toc;  
var $nestedList = null; // Для хранения вложенного списка
var $nestedList = null; // Для хранения вложенного списка
var lastHeadingLevel = 0; // Для отслеживания уровня предыдущего заголовка


function updateCounters(level) {
function updateCounters(level) {
Строка 511: Строка 512:
// Обработка уровня заголовка
// Обработка уровня заголовка
if (level > 1) {
if (level > 1) {
// Переход к правильному уровню
// Если уровень текущего элемента меньше предыдущего, возвращаемся на уровень вверх
while (tocCounters.length > level) {
while (tocCounters.length > level) {
$currentList = $currentList.parent();
$currentList = $currentList.parent();
}
}


// Создание вложенного списка, если он еще не создан
// Создаем вложенный список, если еще не создан
if (!$nestedList || $nestedList.parent().is($currentList) === false) {
if (!$nestedList || $nestedList.parent().is($currentList) === false) {
$nestedList = createNestedList($currentList);
$nestedList = createNestedList($currentList);
Строка 534: Строка 535:
);
);


$currentList.append(tocItem);
// Если предыдущий заголовок имел такой же уровень, добавляем в текущий список
if (lastHeadingLevel === level) {
$currentList.append(tocItem);
} else {
$currentList.append(tocItem); // Добавляем элемент в текущий список
}
 
lastHeadingLevel = level; // Обновляем уровень последнего заголовка
}
}
});
});