2026, 새로운 도약을 시작합니다.

메뉴 jquery 질문 채택완료

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

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

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

Copy




        

                

                    1차

                    

                         2차

                         2차

                         2차

                    

                

      



 

 

$("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개

채택된 답변
+20 포인트

안녕하세요.

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

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개

감사합니다~~~
위 방법으로 해결했습니다^.^!!

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

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

로그인
🐛 버그신고