프로젝트

일반

사용자정보

Actions

새기능 #5719

완료됨

[서브메뉴] 콘텐츠 페이지 호출 시 서브 메뉴 구현

이호영이(가) 2일 전에 추가함. 2일 전에 수정됨.

상태:
완료
우선순위:
보통
담당자:
시작시간:
2026/04/16
완료기한:
진척도:

0%

추정시간:
소요 시간:
난이도:
Actions #1

이호영이(가) 2일 전에 변경

  • 상태을(를) 신규에서 완료(으)로 변경되었습니다.
$(function(){
    console.log('??!!???');

    const currentPath = window.location.pathname;
    console.log(currentPath);

    if (currentPath !== '/web/main/mainPage.do') {
        if (currentPath === '/web/content.do') {
            fn_getSubMenu();
        }
    }
});

function fn_getSubMenu(){



    var title = $('#container .sub_title').text();
    var subTitle = $.trim($('.content_title').text());

    console.log('title ::', title);
    console.log('subTitle ::', subTitle);

    var sendData = {
            "depth1MenuNm" :  title
            , "depth2MenuNm" : subTitle
        }

    $.ajax({
        type: 'POST',
        url: "/web/com/subMenu.do",
        contentType: 'application/json',
        data: JSON.stringify(sendData),
        dataType: 'json',
        success: function(data) {
            console.log(data);
            if(data.status == 'OK'){
                renderSubVisualNav(data);   
            }
        },
        error: function(err) {
            console.error(err);
        }
    });

}


// AJAX 성공 시 호출되는 함수 내부
function renderSubVisualNav(res) {
    const result = res.data || res; // res.data가 있으면 쓰고, 없으면 res 자체를 사용

    const depth1List = result.depth1List || []; // 데이터가 없으면 빈 배열로 초기화
    const depth2List = result.depth2List || [];
    const selected1 = result.selectedDepth1;
    const selected2 = result.selectedDepth2;

    let html = '';

    // 1. 기본 홈 아이콘
    html += '<a href="/"><i class="icon home"></i></a>';

    // 2. 1Depth 메뉴 생성
    if (depth1List.length > 0) { // 리스트가 있을 때만 실행
        html += '<div class="snb_wrap">';
        html += `  <button type="button" class="snb_title">${selected1 ? selected1.text : '메뉴'}</button>`;
        html += '  <ul class="snb_select">';
        depth1List.forEach(item => {
            html += `    <li><a href="${item.url || '#'}">${item.text}</a></li>`;
        });
        html += '  </ul>';
        html += '</div>';
    }

    // 3. 2Depth 메뉴 생성
    if (depth2List.length > 0) {
        html += '<div class="snb_wrap">';
        html += `  <button type="button" class="snb_title">${selected2 ? selected2.text : '메뉴'}</button>`;
        html += '  <ul class="snb_select">';
        depth2List.forEach(item => {
            html += `    <li><a href="${item.url || '#'}">${item.text}</a></li>`;
        });
        html += '  </ul>';
        html += '</div>';
    }

    document.querySelector('.sub_visual_nav').innerHTML = html;
}

Actions

내보내기 Atom PDF