MediaWiki:Common.js: различия между версиями
Shihov (обсуждение | вклад) Нет описания правки |
Shihov (обсуждение | вклад) Нет описания правки |
||
| Строка 44: | Строка 44: | ||
}); | }); | ||
}); | }); | ||
// Сохраняем состояние дерева в локальное хранилище | |||
function saveTreeState() { | |||
var treeState = {}; | |||
$('.CategoryTreeToggle').each(function() { | |||
var $toggle = $(this); | |||
treeState[$toggle.closest('.CategoryTreeItem').attr('id')] = $toggle.attr('aria-expanded'); | |||
}); | |||
localStorage.setItem('treeState', JSON.stringify(treeState)); | |||
} | |||
// Восстанавливаем состояние дерева из локального хранилища | |||
function restoreTreeState() { | |||
var treeState = localStorage.getItem('treeState'); | |||
if (treeState) { | |||
treeState = JSON.parse(treeState); | |||
$('.CategoryTreeToggle').each(function() { | |||
var $toggle = $(this); | |||
var itemId = $toggle.closest('.CategoryTreeItem').attr('id'); | |||
if (treeState[itemId] === 'true') { | |||
$toggle.click(); // Раскрываем категорию | |||
} | |||
}); | |||
} | |||
} | |||
// Добавляем обработчик для сохранения состояния при клике на кнопки раскрытия/закрытия | |||
$('.CategoryTreeToggle').on('click', saveTreeState); | |||
// Восстанавливаем состояние дерева при загрузке страницы | |||
$(document).ready(restoreTreeState); | |||