MediaWiki:Minerva.js: Difference between revisions

No edit summary
Tags: Mobile edit Mobile web edit
No edit summary
Tags: Mobile edit Mobile web edit
Line 27: Line 27:


document.querySelector('#p-main-categories .title-recommended').addEventListener('click', function () {
document.querySelector('#p-main-categories .title-recommended').addEventListener('click', function () {
     openList(this, 'recommended-open');
     openList(this);
});
});
document.querySelector('#p-main-categories .title-category').addEventListener('click', function () {
document.querySelector('#p-main-categories .title-category').addEventListener('click', function () {
     openList(this, 'category-open');
     openList(this);
});
});


function openList(titleLi, listClass) {
function openList(titleLi) {
     var list = document.querySelector('#p-main-categories');
     // 현재 li가 열려 있으면 닫기
    if (list.classList.contains(listClass)) {
        list.classList.remove(listClass);
    } else {
        list.classList.add(listClass);
    }
 
     if (titleLi.classList.contains('open')) {
     if (titleLi.classList.contains('open')) {
         titleLi.classList.remove('open');
         titleLi.classList.remove('open');
        let next = titleLi.nextElementSibling;
        while (next && !next.classList.contains('title-recommended') && !next.classList.contains('title-category')) {
            next.style.display = 'none';
            next = next.nextElementSibling;
        }
     } else {
     } else {
        // 열기
         titleLi.classList.add('open');
         titleLi.classList.add('open');
        let next = titleLi.nextElementSibling;
        while (next && !next.classList.contains('title-recommended') && !next.classList.contains('title-category')) {
            next.style.display = 'block';
            next = next.nextElementSibling;
        }
     }
     }
}
}