통합검색

Javascript

[Javascript] FAQ toggle

  • 2025.07.25 15:29:46
 [!]HTML[/!]
 
<div class="faq_list">
    <?php for ($i=0; $i < 5; $i++) { ?>
    <dl>
        <dt><em>Q</em><strong>창업비용은 얼마나 들고, 최소 얼마부터 시작 가능한가요?</strong><i class="axi axi-keyboard-arrow-down"></i></dt>
        <dd><div class="nostyle">네, 담당 슈퍼바이저 배정, 마케팅 지원, 메뉴 리뉴얼 등 오픈 이후에도 본사에서 지속적으로 운영을 관리합니다.</div></dd>
    </dl>
    <?php } ?>
</div>




 [!]Jquery[/!]
 
//faq list
const faq_toggle = {
    init(){
        this.action();
    },
    action(){
        const faqLists = document.querySelectorAll('.faq_list');
        if (!faqLists.length) return;
        faqLists.forEach(faq => {
            const $btn = faq.querySelectorAll('dl > dt');
            $btn.forEach(el => {
                el.addEventListener('click', e => {
                    e.preventDefault();
                    const parent_dl = el.closest('dl');
                    const hasClass = parent_dl.classList.contains('on');
                    // 해당 faq_list 안에서만 찾기
                    const dl_on = faq.querySelector('dl.on');
                    if (dl_on) {
                        dl_on.classList.remove('on');
                        slideUp(dl_on.lastElementChild, 200);
                    }
                    if (!hasClass){
                        parent_dl.classList.add('on');
                        slideDown(el.nextElementSibling, 200);
                    }
                });
            });
        });
    }
};
document.addEventListener('DOMContentLoaded', () => {
    faq_toggle.init();
});