크로스 브라우징 라이브러리의 한 종류!
자바스크립트 요소 중, 자바스크립트 DOM을 좀 더 쉽게 사용할 수 있게 도와주는 라이브러리!
jQuery란?
웹 표준 기술을 채용하여 다른 기종/플랫폼에 따라 달리 구현되는 기술을 비슷하게 만듬과 동시에 어느 한쪽에 최적화되어 치우치지 않도록 공통요소를 사용하여 웹 페이지를 제작하는 기법!
EX) Jindo 등..
크로스 브라우징?
jQuery 기능 1
jQuery 기능 2
코어
선택
조작
속성
스타일
탐색
Ajax
이벤트
효과
유틸리티
jQuery 학습 방법
jQuery는 수많은 메소드를 가지고 있는 클래스!
정확히 말하자면 자바스크립트 문법 중 프로토타입으로 만들어진 클래스!
jQuery를 배운다는 것은 jQuery 메소드를 배우는다는 의미!
jQuery를 사용하는 이유
자바스크립트 DOM을 좀더 쉽게 작업하기 위한 라이브러리 덩어리!
자바스크립트로 10줄 짤걸 jQuery로 1줄이면 OK!
CSS 선택자를 이용해서 원하는 노드를 쉽게 찾을수 있음!
예제01: 아이디가 header인 노드를 찾아 border를 4px solid #f00으로 변경하기
$(document).ready(function(){
$("#header").css("border", "4px solid #f00");
});예제01: 아이디가 header인 노드를 찾아 border를 4px solid #f00으로 변경하기
window.onload = function() {
var target = document.getElementById("header");
target.style.border = "4px solid #ff0000";
}
예제02: 태그이름이 p인 노드를 찾아 border를 4px solid #f00으로 변경하기
$(document).ready(function() {
$("p").css("border", "4px solid #f00");
})예제02: 태그이름이 p인 노드를 찾아 border를 4px solid #f00으로 변경하기
window.onload = function() {
var ps = document.getElementsByTagName("p");
for (var i = 0; i < ps.length; i++) {
ps[i].style.border = "4px solid #ff0000";
}
}
예제03: 문서 내용 중 div의 자식 p요소 중 클래스 test2이 적용된 요소를 모두 찾아 border를 4px solid #ff000으로 변경하기
$(document).ready(function() {
$("div>p.test2").css("border", "4px solid #ff0000");
})예제03: 문서 내용 중 div의 자식 p요소 중 클래스 test2이 적용된 요소를 모두 찾아 border를 4px solid #ff000으로 변경하기
window.onload = function() {
var data2List = document.getElementsByClassName("test2");
for (var i = 0; i < data2List.length; i++) {
var data2 = data2List[i];
if (data2.tagName == "P") {
if (data2.parentNode.tagName == "DIV") {
data2.style.border = "4px solid #ff0000";
}
}
}
}
jQuery를 사용하는 이유
예제 04: 버튼을 클릭하면 "안녕하세요" 메시지를 띄워 주세요.
$(document).ready(function(){
$("#btn1").on("click", function() {
alert("안녕하세요.");
});
});예제 04: 버튼을 클릭하면 "안녕하세요" 메시지를 띄워 주세요.
window.onload = function() {
// DOM Level 2방식으로 이벤트 리스너 등록하기.
var btn1 = window.document.getElementById("btn1");
// 크로스 브라우징 처리.
if (btn1.attachEvent){
btn1.attachEvent("onclick", function() {
alert("안녕하세요.");
});
} else{
btn1.addEventListener("click", function() {
alert("안녕하세요.");
}, false);
}
}
예제 05: 버튼을 클릭하면 물고기를 왼쪽에서 오른쪽으로 움직여 주세요.
$(document).ready(function() {
//물고기 노드 구하기.
var $fish = $("#fish");
$("#btnStart").click(function() {
// 물고기 움직이기
$fish.animate({
left : 430
}, 5000);
});
})예제 05: 버튼을 클릭하면 물고기를 왼쪽에서 오른쪽으로 움직여 주세요.
window.onload = function() {
//물고기 노드 구하기.
var fish = document.getElementById("fish");
var btnStart = document.getElementById("btnStart");
var left = 50;
var timerID = 0;
btnStart.addEventListener("click", function() {
// 물고기 움직이기
timerID = setInterval(function() {
left++;
fish.style.left = left + "px";
if (left >= 430) {
clearInterval(timerID);
timerID = 0;
}
}, 20)
}, false)
}
예제 06: 아이디가 header인 노드를 찾아 border를 4px solid #f00으로 변경하기
$(document).ready(function() {
$("#header").css("border", "4px solid #f00");
})예제 07: 문서 내용 중 div의 자식 p요소 중 클래스 t est2가 적용된 요소를 모두 찾아 border를 4px solid #ff000으로 변경하기
$(document).ready(function() {
$("div>p.test2").css("border", "4px solid #f00");
});jQuery를 사용하는 이유
jQuery 와 CSS 차이점?
jQuery 개발 환경 설정
jQuery 라이브러리 삽입
CDN(Content Delivery Network) 방법
jQuery 개발 환경 설정
jQuery 라이브러리 삽입
파일 다운로드 방법
jQuery 개발 환경 설정
진입점인 ready() 메소드 설정
// 방법1
jQuery(document).ready(function(){
alert("안녕하세요. jQuery에 온 걸 환영합니다.");
});
// 방법2
// 방법1을 간소화
jQuery(function(){
alert("안녕하세요. jQuery에 온 걸 환영합니다.");
});
// 방법3
// 방법1에서 jQuery함수 대신 $함수로 변경
$(document).ready(function(){
alert("안녕하세요. jQuery에 온 걸 환영합니다.");
});
// 방법4
// 방법3을 간소화
$(function(){
alert("안녕하세요. jQuery에 온 걸 환영합니다.");
});jQuery 개발 환경 설정
DOMContentLoaded vs load
예제3
jQuery의 정체
$() 기본 사용법
<script>
$(document).ready(function(){
});
</script>jQuery의 정체
$() 의미
$("div").css("border", "4px solid #f00");
jQuery("div").css("border", "4px solid #f00");jQuery의 정체
$() 함수의 리턴값
var $divs = $("div");
$divs.css("border", "4px solid #f00");jQuery의 정체
$() 함수의 리턴값
1. $("#target").css("font-size").addClass("select");
2. $("#target").css("font-size", 12).addClass("select");둘중 뭐가 되고 안될까요?
jQuery의 정체
jQuery의 정체
인스턴스 생성
var 인스턴스 이름 = new 클래스 이름();
왜 인스턴스를 생성하지 않고 바로 사용할 수 있는 이유는 뭘까?
jQuery의 정체
내부적으로 생성 해주기 때문!
function $(){
.....
return new jQuery()
}jQuery는 자바스크립트에 prototype으로 구현되어 있음!
function jQuery{
}
jQuery.prototype.css = function(){}
jQuery.prototype.on = function(){}
jQuery.prototype.addClass = function(){}
....