본 수업은 폐지 예정입니다. 자바스크립트 언어 수업과 웹브라우저 자바스크립트로 수업이 리뉴얼 되었기 때문에 이것을 이용해주세요.
이벤트(event)란
- 일반적으로는 프로그래밍적으로 어떤 사건이 일어난 순간을 의미
- 자바스크립에서의 이벤트란 브라우져에서 발생하는 사건들(클릭, 스크롤, 페이지전환 등등)
- 이벤트가 발생했을 때 실행될 로직을 작성한다.
- 이벤트는 태그에 기술하는 인라인(inline)방식과 리스너(Listener)방식이 있다.
예제
인라인 방식
example1.html - (jsfiddle, github)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > </head> <body> <script type="text/javascript"> function gogogo() { alert('push'); } </script> <input type="button" value="push" onclick="gogogo()" /> </body> </html>
example2.html - (jsfiddle, github)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > </head> <body> <select onchange="alert(this.value)"> <option value="1">one</option> <option value="2">two</option> <option value="3">three</option> </select> </body> </html>
리스너 방식
example3.html - (jsfiddle, github)
- addEventlistener는 하나의 엘리먼트에 여러개의 이벤트 핸들러를 걸수있다
- 브라우저간의 호환성을 위해서 조건문을 사용했다. 이러한 기법을 크로스브라우징이라고 한다.
- 이벤트 핸들러란 이벤트가 발생했을 때 실행될 로직을 의미한다.
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > </head> <body> <input type="text" id="test" /> <script type="text/javascript"> // id test인 텍스트 필드를 가져온다 var test = document.getElementById('test'); //이벤트 핸들러 function testHandler() { alert('blur'); } //attachEvent는 ie에서만 지원하기 때문에 attachEvent가 지원되는지 확인하기 위해서 조건문을 사용 //blur란 포커스가 텍스트 필드에서 벗어났을 때 발생하는 내장된 이벤트를 의미한다. if (test.addEventListener)// W3C DOM test.addEventListener('blur', testHandler, false); else if (test.attachEvent)// IE DOM var r = test.attachEvent("on" + 'blur', testHandler); //이벤트 핸들러2 function testHandler2() { alert('blur2'); } if (test.addEventListener)// W3C DOM test.addEventListener('blur', testHandler2, false); else if (test.attachEvent)// IE DOM var r = test.attachEvent("on" + 'blur', testHandler2); </script> </body> </html>
onAbort |
Image |
The loading of the image is cancelled. |
onBlur |
Button, Checkbox, FileUpload, Layer, Password, Radio, Reset, Select, Submit, Text, TextArea, Window |
The object in question loses focus (e.g. by clicking outside it or pressing the TAB key). |
onChange |
FileUpload, Select, Text, TextArea |
The data in the form element is changed by the user. |
onClick |
Button, Document, Checkbox, Link, Radio, Reset, Submit |
The object is clicked on. |
onDblClick |
Document, Link |
The object is double-clicked on. |
onDragDrop |
Window |
An icon is dragged and dropped into the browser. |
onError |
Image, Window |
A JavaScript error occurs. |
onFocus |
Button, Checkbox, FileUpload, Layer, Password, Radio, Reset, Select, Submit, Text, TextArea, Window |
The object in question gains focus (e.g. by clicking on it or pressing the TAB key). |
onKeyDown |
Document, Image, Link, TextArea |
The user presses a key. |
onKeyPress |
Document, Image, Link, TextArea |
The user presses or holds down a key. |
onKeyUp |
Document, Image, Link, TextArea |
The user releases a key. |
onLoad |
Image, Window |
The whole page has finished loading. |
onMouseDown |
Button, Document, Link |
The user presses a mouse button. |
onMouseMove |
None | The user moves the mouse. |
onMouseOut |
Image, Link |
The user moves the mouse away from the object. |
onMouseOver |
Image, Link |
The user moves the mouse over the object. |
onMouseUp |
Button, Document, Link |
The user releases a mouse button. |
onMove |
Window |
The user moves the browser window or frame. |
onReset |
Form |
The user clicks the form's Reset button. |
onResize |
Window |
The user resizes the browser window or frame. |
onSelect |
Text, Textarea |
The user selects text within the field. |
onSubmit |
Form |
The user clicks the form's Submit button. |
onUnload |
Window |
The user leaves the page. |