Post

Javascript 이벤트 처리

Javascript 이벤트 처리

이벤트란 프로그램이 겪는 어떠한 사건을 말합니다. 웹페이지에게는 사용자의 클릭, 마우스 오버, 페이지 로딩 전후 등의 상황에 해당합니다. Javascript는 이러한 이벤트 상황을 감지하고 적절한 대응을 할 수 있는 코드를 구현할 수 있습니다.

#01. 이벤트의 정의

프로그램이 겪는 어떠한 사건.

  • 사용자의 클릭, 마우스 오버
  • 페이지 로딩 직후, 페이지 종료 직전

자바스크립트가 제공하는 브라우저 관련 기능 안에 이미 다양한 이벤트를 감지하는 기능이 구현되어 내장 기능으로 개발자에게 제공된다.

#02. 이벤트를 처리하는 방법

1) 이벤트 리스너

어떤 이벤트가 발생하기를 기다리고 있다가 이벤트 발생시 연결된 함수를 호출해 주는 기능.

이벤트를 감지하는 것은 Javascript 안에 이미 내장되어 있지만 어떤 이벤트가 발생했을 수행할 동작은 웹 페이지마다 다를 수 밖에 없으므로 미리 구현해 놓을 수 없다. (페이지마다 개별 구현이 필요함)

이벤트를 감지하는 기능이 수행할 동작을 콜백함수로 요구한다.

1
객체.addEventListener('이벤트이름', 콜백함수);

2) 이벤트 핸들러

HTML 태그의 속성 형태로 존재하는, 이벤트 발생시 실행할 자바스크립트 코드 영역

Javascript가 고도화 됨에 따라 HTML과 Javascript 코드를 분리하는 경향이 생기면서 이벤트 핸들러는 거의 사용되지 않는 추세.

1
<태그이름 on이벤트이름="...JS코드영역..."></태그이름>

#03. Javascript 이벤트 종류

1) 마우스관련

자주 사용되는 이벤트만 이번 단원에서 정리

이벤트이벤트 핸들러설 명
clickOnClick대상을 클릭했을 경우
dblclickOnDblClick대상을 더블클릭했을 경우
mousedownOnMouseDown마우스 버튼을 누르고 있는 동안
mouseupOnMouseUp마우스 버튼을 누르고 있다가 땐 경우
mousemoveOnMouseMove마우스를 움직였을 경우
mouseoutOnMouseOut대상에서 마우스 포인터가 벗어났을 경우
mouseoverOnMouseOver대상에 마우스 포인터가 위치했을 경우
dragdropOnDragDrop대상을 클릭한 상태에서 이동했을 경우

2) 키보드 관련

자주 사용되는 이벤트만 이번 단원에서 정리

이벤트이벤트 핸들러설 명
keydownOnKeyDown키가 눌러져 있는 동안 반복 실행된다.
keyupOnKeyUp키를 눌렀다가 놓았을 경우
keyprssOnKeyPress화면에 출력되는 키가 눌러질 경우 (한글동작안함)

3) form 요소 관련

20단원-Form요소에서 정리함

이벤트이벤트 핸들러설 명
submitOnSumit입력 양식을 서버로 보냈을 경우 (submit버튼을 누른 경우)
changeOnChange대상에 입력되어 있는 값이 바뀌었을 경우. 입력상자,체크박스,라디오,드롭다운에 적용
blurOnBlur대상에서 포커스가 빠져나간 경우
focusOnFocus대상에 포커스가 들어 왔을 경우
resetOnReset대상을 재시작 시켰을 경우(주로 form)
selectOnSelect입력 양식의 한 필드를 선택했을 경우

4) 브라우저 관련

자주 사용되는 이벤트만 이번 단원에서 정리

이벤트이벤트 핸들러설 명
abortOnAbort이미지를 읽다가 중단했을 경우
errorOnError에러가 발생했을 경우
loadOnLoad대상을 열었을 경우 (주로 페이지 로딩 직후를 의미)
moveOnMove윈도우나 프레임을 움직였을 경우
resizeOnResize윈도우나 프레임의 크기가 변경했을 경우
unloadOnUnload대상을 종료했을 경우

5) 트랜지션 관련

이벤트이벤트 핸들러설 명
transitionrunOnTransitionRun트랜지션이 동작하는 동안
transitionstartOnTransitionStart트랜지션이 시작된 경우
transitioncancelOnTransitionCancel트랜지션이 취소된 경우
transitionendOnTransitionEnd트랜지션이 종료된 경우
This post is licensed under CC BY 4.0 by the author.