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

플라이아웃 메뉴에 자바스크립트 먹이려고 하는데 코드 좀 봐주세요

Copy


    $('.cd-side-nav a').on('click', function(){

        var element = $(this).parent('.has-children');

        if (element.hasClass('active')) {

            element.removeClass('active');

            element.find('.has-children').removeClass('active');

        }

        else {

            element.addClass('active');

            element.siblings('.has-children').removeClass('active');

            element.siblings('.has-children').find('li').removeClass('active');

            $(".hover a").trigger("click");*

                    }

    });

    

    $('.cd-side-nav li.hover a').on('click', function(){

        var element = $(this).parent('.has-children');

        if (element.hasClass('active')) {

            element.removeClass('active');

            element.find('li').removeClass('active');

        }

        else {

            element.addClass('active');

            element.siblings('.has-children').removeClass('active');

            element.siblings('.has-children').find('li').removeClass('active');

            }

    });

 

링크의 메뉴판을 

마우스 오버 시 플라이아웃 메뉴가 보이고 

플라이 아웃 된 메뉴를 누르면  사이드 메뉴 아래에 메뉴가 보이도록 하고싶어서

.hover a를 누르면 이벤트가 발생하도록 했는데 적용이 안 되네요 ㅠㅠ 

트리거를 넣으면 몇 번 되다가 오류가 나는데 

어디를 손봐야 할까요

답변 1개

Copy


$('.cd-side-nav a').on('click', function(){

    var element = $(this).parent('.has-children');

    if (element.hasClass('active')) {

        console.log("a");

        element.removeClass('active');

        element.find('.has-children').removeClass('active');

    }

    else {

        console.log("d");

        element.addClass('active');

        element.siblings('.has-children').removeClass('active');

        element.siblings('.has-children').find('li').removeClass('active');

    }

});

이렇게만 넣으셔도 될 것 같은데요??

trigger를 반복시키면서 사실상 무한루프가 돌기 때문에 안 되는 것이고, 위에 올리신 코드에서도 오타가 있네요 (*이라고 들어가있네요)

넣으신 코드 말고 이 코드 넣으셔서 실행해보세요~

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

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

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

로그인
🐛 버그신고