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

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

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

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

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

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

로그인
🐛 버그신고