본문 바로가기
  • hello world
Language/Javascript

[JS] jQuery

by JJoajjoa 2023. 10. 23.

 

오픈소스 자바스크립트 라이브러리

더보기


달러함수는 제이쿼리 라이브러리에 있음 → 다운로드 받거나 cdn 링크 걸어야 함

<script src="https://code.jquery.com/jquery-3.7.1.min.js"
	integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
	crossorigin="anonymous"></script>

 

 

jQuery를 사용하면 자바스크립트 프로그램에서 DOM 객체 참조작업을 쉽게 할 수 있음
jQuery는 이벤트 처리, DOM 객체 변경, ajax연동을 쉽게 할 수 있음


CSS선택자를 사용 → #ID .class  
CSS Pseudo class 하위, 동일레벨, 폼 선택자 : 콜론으로 되어있는
      (유사하다)
예시) 이메일 목록을 보면 목록이 그리드형태로 나타나는데 홀수번째의 그리드는 row가 되는데 
그런애들의 배경색을 다르게 주고싶을때 (가독성 좋게)

진짜예시
$('tr:even').css('backgroundColor', 'pink')
    셀렉터
$() 제이쿼리 함수호출
     .css 함수호출
            () 매개변수

$( function ); 어떤 함수를 호출하면서 매개변수로 함수를 걸어둠 : 초기화, 초기설정과 관련있음

 

 

함수의 매개변수로 문자열(CSS선택자)을 기술하여 선택함

→ DOM 엘리먼트를 찾아서 결과 값으로 객체 리턴

→ 이렇게 얻어진 객체를 jQuery 확장 객체 집합 이라고 함

 

 

jQuery 사용처

  • 이벤트와 이벤트 핸들러 등록
  • DOM 객체 다루기
  • 시각 효과
  • Ajax 통신

 

 

돔객체

 

 

 

JS Event

 

자바스크립트 이벤트 처리 절차

  • 해당 요소의 이벤트 핸들러 등록
  • 해당 요소에서 이벤트 발생
  • 등록된 핸들러가 수행됨
  • 수행이 끝나면 다음 이벤트를 처리할 준비 상태로 대기

 

이벤트 핸들러가 필요로 하는 것

  • 이벤트 타겟
  • 이벤트 종류
  • 함수

 

자주 사용하는 이벤트 종류

onclick 요소를 클릭할 때
onchange 값이 변했을 때
onfocus 포커스를 받았을 때
onkeypress 키보드의 키를 눌렀을 때
onmouseout 요소 내에 있던 마우스가 요소를 벗어났을 때
onload 문서의 로딩이 끝났을 때
onsubmit 폼을 전송할 때

 

 

이벤트 핸들러 등록

<body>
    <!--1.요소의 속성에 직접 지정-->
    <button onclick="alert('direct')">Click Me!</button>

    <script>
        //2.스크립트에서 요소의 프로퍼티로 지정
        let mydiv = document.getElementById('mydiv');
        mydiv.onclick = function() {
            alert('mydiv');
        }

        //3.이벤트리스너 등록 함수로 등록
        let mydiv = document.getElementById('mydiv');
        mydiv.addEventListener('click', clickMyDiv, false);
        let clickMyDiv = function() {
            alert('mydiv');
        }
    </script>
</body>

 

 

 

 

jQuery Event

jQuery는 버블링만 지원함

내부적으로 브라우저의 이벤트 객체 사용법을 따르므로 크로스 브라우징 문제가 발생하지 않음

이벤트가 발생한 DOM 요소를 this 키워드로 참조하며, 매개변수로 이벤트를 전달받아 참조함

 

종류

  • 마우스, 키보드 이벤트
  • 폼태그 이벤트
  • 윈도우 이벤트
  • 브라우저 이벤트

 

이벤트 핸들러 등록

bind() 메서드나 on(), 또는 click() 등의 메서드 사용하여 등록함

        $('#mybtn').on('click', function() {
            alert('버튼 클릭 하셨나용?');
        })

 

초기화 코드

//1
$(function () {

});

//2
document.addEventListener('DOMContentLoaded', function() { 
    
});

 

 

 

 

예시

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
	integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
	crossorigin="anonymous"></script>
</head>
<body>

	<input type="button" value="전송" id="myBtn" />

	<script>
		//1.$함수에 전달된 함수를 실행시켜주는군
		$(function() {
			//alert('hi jq');
			//방법3
			$('#myBtn').on('click', () => {
				alert('jq로 인해 myBtn이 클릭되었어용');
			});
		});
		
		//2.초기설정을 이렇게 하면 되겠군
		let myBtn = document.querySelector('#myBtn');
		myBtn.addEventListener('click', function () {
			//방법1
			alert('myBtn이 클릭되었어용');
		});
		myBtn.onclick = function () {
			//방법2
			alert('myBtn이 클릭되었어용');
		}
	</script>
	
</body>
</html>

 

 

'Language > Javascript' 카테고리의 다른 글

[JS] 상속  (0) 2024.07.25
[JS] 자바스크립트 기초 (코딩애플 유튜브 무료강의)  (0) 2024.03.28
[JS] DOM  (0) 2023.09.07
[JS] 함수  (0) 2023.09.06
[JS] JavaScript  (0) 2023.09.06