Space
article thumbnail
Published 2023. 6. 13. 18:17
[JS] Event (1) JavaScript
반응형

Event

 

브라우저는 처리해야 할 특정 사건이 발생하면

이를 감지하여 이벤트(event)를 발생(trigger) 시킨다.

 

이벤트가 발생했을 때 호출될 함수를

이벤트 핸들러(event handler)라고 하고,

 

이벤트가 발생했을 때 브라우저에게 이벤트 핸들러의 호출을 위임하는 것을

이벤트 핸들러 등록이라 한다.

 

이벤트와 그에 대응하는 함수(이벤트 핸들러)를 통해

사용자와 애플리케이션은 상호작용을 할 수 있다.

 

이와 같이 프로그램의 흐름을 이벤트 중심으로 제어하는 프로그래밍 방식을

이벤트 드리븐 프로그래밍(event-driven programming)이라 한다.

반응형

Event type (이벤트 타입)

마우스 이벤트

// click
마우스 버튼을 클릭했을 때

// dblclick
마우스 버튼을 더블 클릭했을 때

// mousedown
마우스 버튼을 눌렸을 때

// mouseup
누르고 있던 마우스 버튼을 놓았을 때

// mousemove
마우스 커서를 움직였을 때

// mouseenter
마우스 커서를 HTML 요소 안으로 이동햇을 때 (버블링 되지 않는다.)

// mouseover
마우스 커서를 HTML 요소 안으로 이동했을 때 (버블링 된다.)

// mouseleave
마우스 커서를 HTML 요소 밖으로 이동했을 때 (버블링 되지 않는다.)

// mouseout
마우스 커서를 HTML 요소 밖으로 이동했을 때 (버블링 된다.)

키보드 이벤트

// keydown
모든 키를 눌렸을 때 발생한다.
※ control, option, shift, tab, delete, enter, 방향 키, 문자, 숫자, 특수 문자 키를 눌렸을 때 발생한다.
   단, 문자, 숫자, 특수 문자, enter 키를 눌렸을 때에는 연속적으로 발생하지만 
       그 외의 키를 눌렸을 때에는 한 번만 발생한다.
       
// keyup
누르고 있던 키를 놓았을 때 한 번만 발생한다.
※ control, option, shift, tab, delete, enter, 방향 키, 문자, 숫자, 특수 문자 키를 놓았을 때 발생한다.

포커스 이벤트

// focus
HTML 요소가 포커스를 받았을 때 (버블링되지 않는다.)

// blur
HTML 요소가 포커스를 잃었을 때 (버블링되지 않는다.)

// focusin
HTML 요소가 포커스를 받았을 때 (버블링 된다.)

// focusout
HTML 요소가 포커스를 잃었을 때 (버블링 된다.)

폼 이벤트

// reset
form 요소 내의 reset 버튼을 클릭했을 때(최근에는 사용 안 함)

// submit
1) form 요소 내의 input(text, checkbox, radio), select 입력 필드(textarea 제외)에서 엔터 키를 눌렀을 때
2) form 요소 내의 submit 버튼(<button>, <input type="submit">)을 클릭했을 때
※ submit 이벤트는 form 요소에서 발생한다.

값 변경 이벤트

// input
input(text, checkbox, radio), select, textarea 요소의 값이 입력되었을 때

// change
input(text, checkbox, radio), select, textarea 요소의 값이 변경되었을 때
※ change 이벤트는 input 이벤트와 달리 HTML 요소가 포커스를 잃었을 때 
   사용자 입력이 종료되었다고 인식하여 발생한다.
   즉, 사용자가 입력을 하고 있을 때는 input 이벤트가 발생하고
       사용자 입력이 종료되어 값이 변경되면 change 이벤트가 발생한다.
       
// readystatechange
HTML 문서의 로드와 파싱 상태를 나타내는 
document.readyState 프로퍼티 값('loading', 'interactive', 'complete')이 변경될 때

DOM 뮤테이션 이벤트

// DOMContentLoaded
HTML 문서의 로드와 파싱이 완료되어 DOM 생성이 완료되었을 때

뷰 이벤트

// resize
브라우저 윈도우(window)의 크기를 리사이즈할 때 연속적으로 발생한다.
※ 오직 window 객체에서만 발생한다.

// scroll
웹페이지(document) 또는 HTML 요소를 스크롤할 때 연속적으로 발생한다.

리소스 이벤트

// load
DOMContentLoaded 이벤트가 발생한 이후,
모든 리소스(이미지, 폰트 등)의 로딩이 완료되었을 때(주로 window 객체에서 발생)

// unload
리소스가 언로드 될 때(주로 새로운 웹페이지를 요청한 경우)

//abort
리소스 로딩이 중단되었을 때

//error
리소스 로딩이 실패했을 때

 

 

Event (1)을 알아보는 시간이었습니다.

틀린 내용은 댓글로 알려주시면 감사하겠습니다.

 

 

반응형
profile

Space

@Space_zero

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!