MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 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; // Обновляем уровень последнего заголовка | |||
} | } | ||
}); | }); | ||