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

메뉴 jquery 질문 채택완료

돋티 1년 전 조회 1,967

햄버거 메뉴를 수정해야하는 상황인데요,

햄버거 메뉴 클릭시 전체 메뉴가 열려있는데 (li에 class에 active)

다 닫혀있는 형태로 시작하려면 해당 소스에서 어떤 부분을 수정해야 할까요?

 

</p>

<p><div class="menuList">

        <ul class="list">

                <li>

                    <a class="dropdown-toggle">1차<i></i></a>

                    <ul class="sMenu">

                         <li><a href="">2차</a></li>

                         <li><a href="">2차</a></li>

                         <li><a href="">2차</a></li>

                    </ul>

                </li></p>

<p>      </ul></p>

<p></div></p>

<p> </p>

<p> </p>

<p>$("body").on("click ", "#menuArea .menuList>.list>li", function(){

        var idx = $("#menuArea .menuList>.list>li").index($(this));

        $("#menuArea .menuList>.list>li").each(function(index){

            if(idx == index){

                if(!$(this).hasClass("active")){

                    $(this).addClass("active");

                    $(this).find(".sMenu").slideDown(300);

                }else{

                    $(this).removeClass("active");

                    $(this).find(".sMenu").slideUp(300);

                }

            }else{

                $(this).removeClass("active");

                $(this).find(".sMenu").slideUp(300);

            }

        });

    });

 </p>

<p>

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

답변 1개

채택된 답변
+20 포인트
1년 전

안녕하세요.

아래의 코드를 한번 참고해 보시겠어요?

 

html

<div class="menuList">
    <ul class="list">
        <li>
            <a class="dropdown-toggle">1차<i></i></a>
            <ul class="sMenu">
                <li><a href="">2차</a></li>
                <li><a href="">2차</a></li>
                <li><a href="">2차</a></li>
            </ul>
        </li>
    </ul>
</div>
 

 

css

 

#menuArea .menuList>.list>li .sMenu {
    display: none;
}
 

 

jquery

 

$(document).ready(function() {
    // 페이지 로드 시 2차 메뉴를 숨깁니다.
    $("#menuArea .menuList>.list>li .sMenu").hide();
});

$("body").on("click ", "#menuArea .menuList>.list>li", function(){
    var idx = $("#menuArea .menuList>.list>li").index($(this));
    $("#menuArea .menuList>.list>li").each(function(index){
        if(idx == index){
            if(!$(this).hasClass("active")){
                $(this).addClass("active");
                $(this).find(".sMenu").slideDown(300);
            }else{
                $(this).removeClass("active");
                $(this).find(".sMenu").slideUp(300);
            }
        }else{
            $(this).removeClass("active");
            $(this).find(".sMenu").slideUp(300);
        }
    });
});
 

 

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

답변에 대한 댓글 1개

돋티
1년 전
감사합니다~~~
위 방법으로 해결했습니다^.^!!

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

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

로그인