본문 바로가기

Web + 디자인/Publishing + 코딩

jQuery toggleClass() Methods

toggleClass


해당 객체에 Class값을 켜고 끄는 기능을 한다. (터치식 스위치라고 생각하면 된다.)


기본적인 사용방법.

#('버튼으로 사용할 엘리먼트').click(function(){

$('토글을 적용할 엘리먼트').toggleClass('클릭시 적용될 클래스명');

});



예제. 1) 아이디값이 color인 태그 클릭 시 클래스값 redColor을 적용 및 해제하기

<!doctype html>
<html lang="ko">
<head>
<title>toggleClass 예제</title>
<meta charset="utf-8">

<style type="text/css">
#color {
    color: #369;
}
#color.redColor {
    color: red;
}
</style>
</head>


<body>
<div id="color">클릭하면 글자가 빨강색으로 다시 클릭하면 글자가 파랑색으로 바뀝니다.</div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
$('#color').click(function(){
    $(this).toggleClass('redColor');
});
</script>
</body>
</html>


해석

1. 실행부분 = $('#color').click(function(){})

  • 아이디가 color인 엘리먼트를 클릭하였을 때 아래의 기능을 작동시켜라.
  • 위와 동일한 엘리먼트(this)에 'redColor'이라는 클래스를 토글시킨다.

2. 결과

    • #color라는 앨리먼트를 클릭 시
      • 파랑의 글자색상이 빨강색으로 변한다.
    • #color라는 앨리먼트를 다시 클릭 시
      • 빨강으로 변한 글자색상이 파랑으로 돌아간다.
    • 위 과정 반복


< 예제 1 > 미리보기

클릭하면 글자가 빨강색으로 다시 클릭하면 글자가 파랑색으로 바뀝니다.



예제. 2) 다중토글 적용 : 클래스명이 sideBtn인 태그를 활용하여 sideMenu에 있는 값을 토글하기.

<!doctype html>
<html lang="ko">
<head>
<title>toggleClass 예제</title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<style type="text/css">
aside {
    position: fixed;
    width: 200px;
    height: 100%;
    top: 0;
    left: -200px;
    z-index: 100;
    background: #ddd;
}
#container {
    position: relative;
    padding: 0 30px;
}
.sideBtn {
    position: fixed;
    width: 25px;
    height: 25px;
    top: 0;
    left: 0;
    background: #c00;
    z-index: 999;
}
aside.slide {
    left: 0;
}
.sideBtn.active {
    left: 200px
}
aside,
.sideBtn {
-webkit-transition: all .3s ease-out;
   -moz-transition: all .3s ease-out;
     -o-transition: all .3s ease-out;
        transition: all .3s ease-out;
}
</style>
</head>

<body>

<aside>사이드바</aside>
<div class="sideBtn"></div>
<div id="container">콘텐츠</div>

<script type="text/javascript">
function sideMenu() {
    $('aside').toggleClass('slide');
    $('.sideBtn').toggleClass('active');
};
$('.sideBtn').click(function() {
    sideMenu();
});
</script>
</body>
</html>


해석

1. 함수부분 = function sideMenu(){}

    • aside 엘리먼트는 slide라는 클래스를 토글한다.
    • sideBtn이라는 클래스를 가진 엘리먼트는 active라는 클래스를 토글한다.

2. 실행부분 = $('.sideBtn').click(function(){})

    • sideBtn이라는 클래스를 가진 엘리먼트를 클릭하였을 때, sideMenu의 함수를 실행하여라.

3. 결과

    • sideBtn 클릭 시
      • aside에 slide라는 클레스값 추가
      • widgetBtn에 active 클레스값 추가
    • 위의 클레스값이 있을경우
      • aside에 slide라는 클레스값 제거
      • widgetBtn에 active 클레스값 제거


< 예제 2 > 미리보기 (빨강색의 사각형을 클릭)

사이드바
콘텐츠