메뉴는 아래와 같은 구조입니다.
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 );
bossbug
2017-07-07 (금) 12:44:39
답변 감사합니다. 하지만 클래스가 적용안되네요.
대안 없을까요?
답변을 작성하려면 로그인이 필요합니다.