[jQuery] 4.jQuery 문법
제이쿼리를 사용하면 아주 간편하게 HTML 요소를 선택하고,
그렇게 선택된 요소에 손쉽게 특정 동작을 설정할 수 있습니다.
제이쿼리의 기본 문법은 다음과 같습니다.
$(선택자).동작함수();
달러($) 기호는 제이쿼리를 의미하고, 제이쿼리에 접근할 수 있게 해주는 식별자입니다.
선택자를 이용하여 원하는 HTML 요소를 선택하고,
동작 함수를 정의하여 선택된 요소에 원하는 동작을 설정합니다.
선택자는 css의 선택자와 같습니다. (id는 #id명 class는 .클래스명)
jQuery 함수는 oscarotero.com 를 참고하면,
자세히 나와있습니다!
이제부터 직접 실습해보면서 제이쿼리가 어떻게 쓰이는지 알아보겠습니다!
예제
- 문장을 클릭하면 문장이 사라지는 예제
<!------------------js2.html------------------>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> /* 구글 CDN 이용*/ </script>
<script>
$(function(){
//alert() /* jquery 연동되는지 확인 */
$('p').click(function(){ /* 클릭하면 사라지게함 */
$(this).hide() /* 자기 자신을 클릭할 때 사라짐 */
/*(this).hide(1000) 바로 안없어지고 1초 지난 뒤에 없어짐 */
})
})
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>
</body>
</html>
- 박스를 클릭했을 때 박스가 나타나고 사라지는 예제
/*----------------js3.css---------------*/
.p{width: 500px;
margin: auto;
color:#fff;
padding:10px;}
.pannel{background: #333;}
.pannel2{background: orange;}
.pannel3{background: pink;}
.b{cursor:pointer;
padding:10px;
border-bottom:1px solid #fff;}
.s{display:none;}
/*----------------js3.js---------------*/
$(function(){
$('.btn').click(function(){ // .btn을 클릭했을 때
$('.summary').show(1000) //.summary를 보이게 함
})
$('.pannel').mouseleave(function(){ //.pannel에서 마우스가 떨어질 때
$('.summary').hide(1000) //.summary 사라지게함
})
})
$(function(){
$('.btn2').click(function(){ // .btn2를 클릭했을 때
$('.summary2').fadeIn(1000) //.summary2를 보이게 함
})
$('.pannel2').mouseleave(function(){ // //.pannel2에서 마우스가 떨어질 때
$('.summary2').fadeOut(1000) //.summary2 사라지게함
})
})
$(function(){
$('.btn3').click(function(){ // .btn3를 클릭했을 때
$('.summary3').slideDown(1000) //.summary3를 보이게 함
})
$('.pannel3').mouseleave(function(){ // //.pannel3에서 마우스가 떨어질 때
$('.summary3').slideUp(1000) //.summary3 사라지게함
})
})
<!--------------------------js3.html------------------------------->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="js3.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> /* 구글 CDN 이용*/ </script>
<script src="js3.js"></script>
</head>
<body>
<div class="pannel p">
<div class="btn b">
Show
</div>
<div class="summary s">
<p>안녕하세요! 꾸리블로그입니다</p>
<p>함수 show와 hide 입니다.</p>
</div>
</div>
<div class="pannel2 p">
<div class="btn2 b">
Show
</div>
<div class="summary2 s">
<p>안녕하세요! 꾸리블로그입니다</p>
<p>함수 FadeIn과 FadeOut 입니다.</p>
</div>
</div>
<div class="pannel3 p">
<div class="btn3 b">
Show
</div>
<div class="summary3 s">
<p>안녕하세요! 꾸리블로그입니다</p>
<p>함수 slideDown과 slideUp 입니다.</p>
</div>
</div>
</body>
</html>
위의 예제를 이용하면 전에 [IoT_CSS] 22. 실습: itscope 의 서브메뉴에 슬라이딩 기능을 줄 수 있습니다!
/* ------------------itscope2.css--------------- */
body{height:100%; background: url(basic_bg01.gif) 0 0 repeat;}
.wrap-bg{background: url(basic_bg02.gif) 50% 0 repeat-y;}
.wrap{position:relative; width:1230px; margin:auto;
background: url(header_bg01.gif) 0 0 repeat-y;
height:914px;}
.header{width:183px; float:left;}
.nav img{display:block;}
.level2 {width:100%; display:none; }
.contents{position:relative; width:997px; margin-left:10px;
padding:0 0 17px 40px; float:left;
background: url(main_bg01.gif) 0 0 no-repeat;}
.footer{position:absolute; left:0; bottom:23px;}
.imgtxt{background: url(footer_menu_bg01.gif) 0 100% no-repeat;}
.foot-nav{ height:19px; margin-bottom:9px; padding:7px 0 0 10px;
background: url(footer_menu_bg01.gif) 0 100% no-repeat;}
.foot-nav li{padding:0 8px; float:left;}
.main-img{margin-left:-50px;}
.main-content{position:relative; width:745px; margin-top:-75px;}
.main-content article{float:left;}
#a1{margin-right:8px;}
.side-content{width:243px; height:699px; position:absolute;
left:793px; top:192px;}
#a2 {width:218px; height:348px; padding:0px;}
.side-content article{width:218px; height:147px;
padding:25px 0 0 25px; margin-bottom:6px; }
.notice{background: url(gridcontents_notice_bg01.jpg);}
.pr {background: url(gridcontents_pr_bg01.jpg);}
/* 말줌임표 white-space:nowrap:개행하지 않겠다. */
.side-content li{white-space:nowrap; width:200px; overflow:hidden;
text-overflow:ellipsis;}
.lang{position:absolute; left:877px; top:17px;}
.ko{background: url(lang_bar.png) 100% 0 no-repeat;}
.lang li{float:left; margin-right:8px; padding-right:11px;}
.lang a{display:block;}
.clear{clear:both;}
/* ------------------itscope2.js--------------- */
$(function(){
$('.level1').click(function(){
//현재 클릭한 것만 보이고 기존 메뉴는 slideUp
$('.level2').stop().slideUp(500) //stop은 반복 실행하면 그만두라는
//현재의 level2만 slideDown
$(this).find('.level2').stop().slideDown(500)
//$(this).children('.level2').slideDown()
})
})
html 파일은 전과 동일합니다!