테스트 사이트 - 개발 중인 베타 버전입니다

아코디언 메뉴 질문입니다! 채택완료

주사쟝 8년 전 조회 6,844

 

위에 그림처럼 아코디언 메뉴인데요.

항상 첫번째 탭 서브부분이 열려있는 상태입니다.

열려있지 않게 하려면 소스 수정을 어떻게 해야하나요?

 

</strong></p>

<p><h3>아코디언메뉴</h3>

<div class="d4 ex">

 <nav class="menu">

        <ul>

            <li class="active"><a href="#" class="m">MENU1</a>

                <div class="sub">1-서브메뉴영역
1-서브메뉴영역
1-서브메뉴영역
1-서브메뉴영역
</div>

            </li>

            <li><a href="#" class="m">MENU2</a>

                <div class="sub">2-서브메뉴영역
2-서브메뉴영역
2-서브메뉴영역
2-서브메뉴영역
</div>

            </li>

            <li><a href="#" class="m">MENU3</a>

                <div class="sub">3-서브메뉴영역
3-서브메뉴영역
3-서브메뉴영역
3-서브메뉴영역
</div>

            </li>

            <li><a href="#" class="m">MENU4</a>

                <div class="sub">4-서브메뉴영역
4-서브메뉴영역
4-서브메뉴영역
4-서브메뉴영역
</div>

            </li>

        </ul>

    </nav>

</div>

<style>

.d4{ height:400px;}

</style>

<script>

// .d4 .menu li .m을 클릭함.

$(".d4 .menu li .m").click(function(){

 var i = $(this);

 var s = i.siblings(".sub");

 var dis = s.css("display");

 // 만약 변수 dis의 값이 block과 같다면 => 즉 내가 클릭한 대상이 현재 열려있다면

 if(dis=="block"){

  i.parent("li").removeClass("active");

  s.slideUp(300);

  }

 // 만약 변수 dis의 값이 none과 같다면 => 즉 내가 클릭한 대상이 현재 닫혀있다면

 if(dis=="none"){

  $(".d4 .menu li").removeClass("active");

  i.parent("li").addClass("active");

  $(".d4 .menu li .sub").slideUp(300);

  s.slideDown(300);

  }

 return false;

 });

</script></p>

<p><strong>

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플래토
8년 전

이걸 추가해보세요

$(function() {     $(".active").slideUp(300); });

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

주사쟝
8년 전
안되요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

y
8년 전

첫번째 에서 class="active" 삭제해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

주사쟝
8년 전
클래스에 관한 css만 사라지고, 계속 열려있습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인