채택완료

2뎁스 메뉴 활성화 하고 싶습니다.

2017-06-12 (월) 11:35:14 3,910

메뉴는 아래와 같은 구조입니다.

js 에서 menu2-1에 acitve 클라스를 주고 싶은데 어떻게 해야하나요?

즐거운 하루 보내세요.

<HTML>

Copy
<div id="sidemenu">  <ul>    <li>menu1</li>    <li class="has-sub">menu2      <ul>        <li>menu2-1</li>      </ul>    </li>  </ul></div>

<JS>

Copy
( function( $ ) { $( document ).ready(function() {  $('#sidemenu > ul > li > a').click(function() {    $('#sidemenu li').removeClass('active');    $(this).closest('li').addClass('active');     var checkElement = $(this).next();    if((checkElement.is('ul')) && (checkElement.is(':visible'))) {   $(this).closest('li').removeClass('active');   checkElement.slideUp('normal');    }    if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {   $('#sidemenu ul ul:visible').slideUp('normal');   checkElement.slideDown('normal');    }    if($(this).closest('li').find('ul').children().length == 0) {   return true;    } else {   return false;     }    }); });} )( jQuery );
 

답변 2개

채택된 답변
+20 포인트
2017-07-06 (목) 21:27:19
( function( $ ) {
 $( document ).ready(function() {
  $('#sidemenu > ul > li > a').click(function() {
    $('#sidemenu li').removeClass('active');
    $(this).closest('li').addClass('active'); 
    $(this).children('ul li').addClass('active');
    var checkElement = $(this).next();
    if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
   $(this).closest('li').removeClass('active');
   checkElement.slideUp('normal');
    }
    if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
   $('#sidemenu ul ul:visible').slideUp('normal');
   checkElement.slideDown('normal');
    }
    if($(this).closest('li').find('ul').children().length == 0) {
   return true;
    } else {
   return false; 
    }  
  });
 });
} )( jQuery ); 

답변 감사합니다. 하지만 클래스가 적용안되네요.

대안 없을까요?

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