menu에 active 걸기

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
menu에 active 걸기

QA

menu에 active 걸기

본문

menu 갯수는 총 3개입니다.

어바웃 / 패키지 / 질문답변

 

"각 페이지.php 는 index.php와 같은 루트내에 위치합니다."

 

아래와 같이 했을때 각각 페이지들에 있어서 active 가 정상 활성화되나,

문제는 index.php에서 모든 메뉴에 active가 걸리게 되네요.

 

왜이러는지 아시는분 계실까요.

 

 

 

1. 메뉴 소스


    <nav class="header_nav">
      <ul>
        <?php
        $menu_datas = get_menu_db(0, true);
        $gnb_zindex = 999; // gnb_1dli z-index 값 설정용
        $i = 0;
        foreach( $menu_datas as $row ){
            if( empty($row) ) continue;
            $add_class = (isset($row['sub']) && $row['sub']) ? 'gnb_al_li_plus' : '';
        ?>
        <li class="gnb_1dli <?php echo $add_class; ?>" style="z-index:<?php echo $gnb_zindex--; ?>">
            <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a>
            <?php
            $k = 0;
            foreach( (array) $row['sub'] as $row2 ){
                if( empty($row2) ) continue; 
                if($k == 0)
                    echo '<span class="bg">하위분류</span><div class="gnb_2dul"><ul class="gnb_2dul_box">'.PHP_EOL;
            ?>
                <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li>
            <?php
            $k++;
            }   //end foreach $row2
            if($k > 0)
                echo '</ul></div>'.PHP_EOL;
            ?>
        </li>
        <?php
        $i++;
        }   //end foreach $row
        if ($i == 0) {  ?>
            <li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
        <?php } ?>
      </ul>
    </nav>

 

 

2. 스크립트 


<script>
$('.header_nav a').each(function() {
    
    let _href = $(this).attr('href');
    
    if (_href.indexOf(location.pathname) > -1)
        $(this).parent().addClass('active');
    else
        $(this).parent().removeClass('active');
});
</script>

 

 

3. 스타일시트


.header_nav ul li.active a { color: blue; }

 

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 126
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT