pre-loader

브레드크럼을 옵션 셀렉트 구조로 만들기

<script type="text/javascript">
                
    jQuery(function($) {
        
        // 1. 현재 위치 표시 부분에 current 관련 클래스가 있는 메뉴의 텍스트를 복사 ---------------------------
        // 1-1) 현재 위치 두번째 
        let breadcrumbs_menu_second = $('.breadcrumbs-menu.menu-second .w-text-value');
        let current_second = $('#breadcrumbs-menu-data > .menu > .current-menu-ancestor > a').text();
        if ( $('#breadcrumbs-menu-data > .menu > .current-menu-item').length ) {
            // 서브 메뉴가 없는 메뉴는 클래스명이 다름 (current-menu-item)
            current_second = $('#breadcrumbs-menu-data > .menu > .current-menu-item > a').text();
        }				
        breadcrumbs_menu_second.text(current_second);
        
        // 1-2) 현재 위치 세번째 
        let breadcrumbs_menu_third = $('.breadcrumbs-menu.menu-third .w-text-value');
        let current_third = $('#breadcrumbs-menu-data > .menu > .current-menu-ancestor .sub-menu > .current-menu-item a').text();
        if (current_third) {
            // 서브 메뉴 중에 current-menu-item 클래스를 가진 메뉴가 있는 경우 
            breadcrumbs_menu_third.text(current_third);
        }
        
        // 2. 드롭다운 메뉴 리스트 만들어 붙이기 ------------------------------------------------------
        // 2-1) 2댑스 메뉴들 중 부모 메뉴에 현재 위치가 있는 것을 새 리스트에 담고, 현재 위치 표시 요소에 붙이기 
        let $thirdUl = $('<ul>').addClass('breadcrumbs-menu-sub breadcrumbs-menu-third-sub'); 
        if ( $('#breadcrumbs-menu-data > .menu > .current-menu-ancestor').length ) {					
            // 선택된 모든 요소에 대한 반복문 (.each)
            $('#breadcrumbs-menu-data > .menu > .current-menu-ancestor > ul').each(function(index, element) {
                // 각 요소에 대한 작업 수행
                // index는 현재 요소의 인덱스이고, element는 현재 요소 자체입니다.
                // 예: 각 요소의 텍스트 콘텐츠 출력
                $thirdUl.append($(element).html());	
            });
            $('.breadcrumbs-menu.menu-third').append($thirdUl);						
        } else if ( $('#breadcrumbs-menu-data > .menu > .current-menu-item > ul').length ) { 
            // 자식 메뉴가 있지만, 부모 페이지도 링크를 가진 경우, 클래스명이 달라짐
            $('#breadcrumbs-menu-data > .menu > .current-menu-item > ul').each(function(index, element) {
                $thirdUl.append($(element).html());	
            });
            $('.breadcrumbs-menu.menu-third').append($thirdUl);						
        } else {
            // 자식 메뉴가 없는 페이지는 현재 위치 표시 구조에서 세번째 것을 없앰					
            $('.breadcrumbs-menu.menu-third').remove(); 					
        }
        $('#breadcrumbs-menu-data > .menu .sub-menu').remove();  // 이제 서브 메뉴들은 삭제 
        
        // 2-2) 1댑스 메뉴들만 리스트로 만들어서 현재 위치 표시 요소에 붙이기 (2-1 끝에서 이미 자식 메뉴들은 다 제거된 상태) 
        let $secondUl = $('<ul>').addClass('breadcrumbs-menu-sub breadcrumbs-menu-second-sub');
        // 선택된 모든 요소에 대해 반복
        $('#breadcrumbs-menu-data > .menu').each(function(index, element) {
            $secondUl.append($(element).html());	
        });
        $('.breadcrumbs-menu.menu-second').append($secondUl);				
        $('#breadcrumbs-menu-data').remove();
        
        // 3. hover event check --------------------------------------------------------------
        // 마우스가 요소 위에 올라갔을 때의 이벤트를 체크해서 붙여진 리스트가 보이도록 클래스를 토글(toggle)
        $(".breadcrumbs-menu").hover(function(){
            // 마우스가 요소 위에 있을 때 실행되는 코드
            $(this).find('.breadcrumbs-menu-sub').toggleClass('on');
        }, function(){
            // 마우스가 요소에서 벗어났을 때 실행되는 코드
            $(this).find('.breadcrumbs-menu-sub').toggleClass('on');
        });
        
    }); 				

</script>