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; }
!-->!-->!-->
답변을 작성하시기 전에 로그인 해주세요.