티스토리 뷰

이벤트

키보드가 입력되는것, 마우스가 클릭되는 것 등을 이벤트라고 한다. Javascript에서는 이벤트가 발생했을때에, 이를 처리할 수 있도록 어떤 함수가 호출되도록 지정할 수 있는데, 이때 호출되는 함수를 이벤트 핸들러라고 한다.

Javascript 이벤트 핸들러의 종류

마우스/키보드 뿐만 아니라 웹사이트를 사용할 때에 일어날 법한 사건에 대해서 이벤트 핸들러가 정의되어있다. 보통 이벤트의 이름 앞에 "on"을 붙여서 on~~~ 처럼 이름이 붙은 경우가 많다.
아래는 javascript 이벤트 핸들러 중 몇가지를 가져온 것이다.

  • onclick: 마우스 버튼이 눌렸다 떼어질 때 실행된다.
  • onkeydown: 키가 눌렸을 때 실행된다.
  • onmouseover: 마우스가 엘리먼트 위로 이동할 때 실행된다.
  • onresize: 윈도우 크기가 변경될 경우 실행된다.
  • onselect: 텍스트가 선택됐을 때 실행된다.
  • onload: 문서 로딩이 완료됐을 때 실행된다.

마우스, 키보드 관련 이벤트핸들러.

1)마우스

  • onmousemove
    마우스가 이동시 호출
  • onclick : 마우스 버튼이 눌렸다 떼어질 때 실행된다.
    mouseup 이벤트가 이어서 발생한다. 기본 동작 방식을 취소하려면 false를 반환한다.
    • onmousedown: 마우스 버튼 눌렸을 때 호출
    • onmouseup: 마우스 버튼에서 손을 뗐을 때 호출
  • ondblclick
    마우스 더블클릭시 호출
  • onmouseover
    마우스가 엘리먼트 위로 이동시 호출
  • onmouseout
    마우스가 엘리먼트에서 벗어났을때 호출

2)키보드

  • onkeypress: 키가 눌렸을 때 실행된다.
    keydown 이벤트가 이어서 발생한다. 취소하려면 false를 반환한다.
    • onkeydown: 키가 눌렸을 때 실행된다. 취소하려면 false를 반환한다.
    • onkeyup: 키에서 손을 뗐을 때 실행된다. keypress 이벤트가 이어서 발생한다.

이벤트 핸들러

HTML 속성 형태의 이벤트 핸들러

onlclick="함수"에서 함수에 해당하는 부분이 onlclick 이벤트가 발생하면 실행될 함수이다.
onclick(마우스 버튼이 눌렸다 떼어질 때), onsubmit(폼 제출이 요청됐을 때), onload(문서 로딩이 완료됐을 때) 이 모두 이벤트이다.

<input type="button" value="Press Me" onclick="alert('thanks');">  
<form action="processform.action" onsubmit="return validateForm();">

<body onload="startApp()">

프로퍼티 형태의 이벤트 핸들러

HTML 속성으로 썼던 것을 Javascript로 나타낸 것이다. HTML Element의 onclick 속성에 원하는 함수를 지정하는 식이다.

//1

document.getElementById('button1').onclick = function(){alert('thanks');};



//2

function startApp(){...}

document.onload = startApp;

참고 - this

(이벤트 핸들러를 HTML속성으로 정의하든 자바스크립트 프로퍼티로 정의하든 같음)

  • document 엘리먼트에 이벤트핸들러를 새로운 메서드로 정의하는 것이다.

    함수(이벤트핸들러)를 document 엘리먼트의 프로퍼티로 할당하는 셈이다.

  • 이벤트 핸들러가 호출되면 이벤트가 발생한 엘리먼트의 메서드로서 해당 이벤트 핸들러가 호출되고,

    따라서 this 키워드는 대상 엘리먼트를 가리킨다.

반응형
댓글