** 제이쿼리(jQuery) :
- 자바스크립트 언어를 간편하게 사용할 수 있도록 단순화시킨 오픈 소스 기반의 자바스크립트 라이브러리
- 문서 객체 모델(DOM)과 이벤트에 관한 처리를 손쉽게 구현할 수 있음
- 이전까지배운 JS는 바닐라JSON이었음. 이게 완벽하면 제이쿼리는 쉬울텐데! 일단 나는 JSON부터 제대로....ㅠ_ㅠ
** 제이쿼리의 사용 :
- 제이쿼리 라이브러리를 추가해야 합니다
- 방법은 여러가지가 있지만 대표적으로 아래의 세 가지 방법을 많이 사용합니다.
** 적용방법 1 : API를 직접 다운받아 사용
<script src="js/jquery.js"></script>
적용방법 2 : (구글)CDN을 이용하는 방법★★★
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
적용방법 3 : jquery에서 제공하는 최신 버전의 jQuery url 가져오기
<script src="http://code.jquery.com/jquery-latest.js"></script>
** JQuery (강사님 요약)
- 전세계적으로 가장 많이 사용되었던 라이브러리
- 급속도로 레거시화 되고 있음
- 아직 국내에서는 상당히 많이 사용됨!
- 생산성, 안정성이 확보되어있음
- 가급적 JQuery활용시 ES5 문법을 활용하는게 낫다
- 바닐라JS가 몸에 익어있을 경우 상당히 쉽게 배울 수 있음
// 1. 제이쿼리 호출, API활용
// --> 달러($) 기호는 제이쿼리를 의미
function test1(){
// 1-1. 생산성 극대화!! 기차놀이가 가능해져.
$(".c1").text("제이쿼리 호출, text변경, 내부에서 알아서 반복문이 돌아간다... 개쩌는거라거...");
// 1-2. 클래스 조작도 가능
$("#u1").css("color", "blue")
.css("font-size", "2em")
.addClass("btn")
.addClass("btn-secondary");
}
// 2. create element
function test2(){
$("<span></span>").text("생성을 했으면 붙여야지").appendTo(".x1");
// --> tag를 만드는건 <> 이런거 꼭 써줘야지. (test7번 보세염)
// ** append / append to
// - append : 여기뒤에 바로 붙이겠다.
// - to : 어디어디 뒤에 이걸 붙이겠다.
}
// 3. setter / getter
function test3(){
// 3-1. setter
// --> set이후에 JQuery객체를 리턴함
// --> 그러니까 .으로 기차놀이가 가능하겠지?
$("#x1").text("이렇게 값을 전달하면 setter"); // --> document 출력 : 이렇게 값을 전달하면 setter
$("#x1").css("font-size", "2em"); // (CSS type) , $("#x1").css("fontSize"); --> 이것도 가능해(JS type)
// 3-2 getter
// --> "값"을 전달하지 않으면 그에 해당하는 값을 리턴함
// --> console에서 변경되는거겠지
var textValue = $("#x1").text();
console.log(textValue); // console 출력 : 이렇게 값을 전달하면 setter
}
// 4. 클래스
function test4(){
// $("#x1").addClass("fs-3 fw-bold");
// $("#x1").addClass("fs-3","fw-bold"); --> 이건 안돼
$("#x1").addClass(["fs-3", "fw-bold"]); // 이게 좀 더 멋지지 (JS style)
$("#x1").removeClass("fs-3"); // 위에서부터 진행됨. (= bold만 남은거겠지)
}
// 5. 속성조작 (= setAttribute)
function test5(){
$("#x1").attr("a", "1234");
$("#x1").attr("id", "7777");
$("#x1").attr({
b : "이것도 되겠지",
c : "JSON양식으로"
});
var getC = $("#x1").attr("c");
console.log(getC);
}
// 6. 통합예제
function test6(){
$("#x1")
.text("통합예제 진행중")
.css({
color : "#655997",
fontSize : "3em"
})
.attr("onclick", "alert(3)")
.addClass(["fw-bold", "text-center"]);
}
// 7. 요소 생성/추가
function test7(){
$("<li></li>")
.append($("<span></span>").text("요소 생성/추가 진행중"))
.append($("<span></span>").text(" X버튼").attr("onclick", "alert('이것')"))
.appendTo("#u1")
;
}
// 8. 주요 애니메이션
function test8(){
// 8-1. 1초에 걸쳐서 스르륵...
$("#u1").fadeOut(1000);
// 8-2. 슈룩!
$("#u1").slideDown(500);
}
// 9. event handling
// 가정] 어떠한 이유에 의해서 test8을 호출했을 때 또 다른 뭔가를 하고싶다.
function test9(){
// 9-1. vanilla JS code
// const x1 = document.getElementById("x1"); --> 이것도 되지뭐
const x1 = document.querySelector("#x1");
x1.onclick = () => {
alert("안녕");
};
x1.onmouseenter = () => {
alert("하이이이");
};
// 9-2. JQuery code
// 방법1)
// $("#x1").click(null).mouseenter(null);
// 방법2)
$("#x1").on({
click: function(){
alert(123)
},
mouseenter: function(){
alert('마우스엔터')
}
});
}
// 시작시점잡기
// 방법1) vanilla JS code
window.addEventListener("DOMContentLoaded", () => {
console.log("시작, vanilla JS")
});
// 방법2) JQuery code
// -1
$(function(){
console.log("시작, JQuery1")
});
// -2
$(document).ready(function(){
console.log("시작, JQuery2")
});
'JavaScript > DAY 39 _ 23.10.16' 카테고리의 다른 글
잡다API (0) | 2023.10.17 |
---|---|
Event객체 (0) | 2023.10.16 |
예제] 레시피, 게시판, 모달 (0) | 2023.10.16 |