Class: 제로베이스
Created: December 28, 2022 5:46 AM
Type: Javascript
강의 명: 초심자도 빈틈없이 학습하는 자바스크립트
마우스 이벤트 | 이벤트 핸들러 | 설명 |
---|---|---|
click, doubleclick | onclick, ondbclick | 마우스 클릭, 더블클릭 |
mousecown | onmousedown | 마우스를 누를 때 |
mouseup | onmouseup | 눌렀던 마우스를 땠을 때 |
mouseover | onmouseover | 요소 위로 마우스를 올렸을 때 |
mouseout | onmouseout | 요소 밖으로 마우스를 움직였을 때 |
포커스 이벤트 | 이벤트 핸들러 | 설명 |
---|---|---|
focus | onfocus | 포커스 얻음 |
blur | onblur | 포커스 잃음 |
기타 이벤트 | 이벤트 핸들러 | 설명 |
---|---|---|
submit | onsubmit | 폼 전송 |
resize | onresize | 사이즈 조절 |
select | onselect | 텍스트 선택 |
scroll | onscroll | 스크롤 기능 |
change | onchange | 폼 변경 |
on + “이벤트 명” 표기(모두 소문자로 표기)
ex) onclick
이벤트 핸들러(리스너)를 통해 함수 등록
이벤트 객체란, 이벤트를 발생시킨 요소와 발생한 이벤트에 대한 정보를 제공하는 것을 말한다. 이벤트가 발생하면, 이벤트 객체는 동적으로 생성되어, 이벤트 핸들러에 인자로 암묵적으로 전달된다.
- 이벤트가 일어나는 것 그 자체
- 이벤트의 기능 및 속성 제공
<button type = 'button' id="btn"> 클릭 </button>
<script>
let btn = document.getElementById("btn");
btn.addEventListener("click", btnClickEvent);
function btnClickEvent(event) {
console.log(event); // 이벤트가 일어나는 것 그 자체
console.log(event.target) //
console.log(event.currentTarget)
}
</script>
버튼 2개를 자식요소로 가지고 있는 parent 요소가 있다고 해보자.
<div class="parent">
<button id="btn1">button 1</button>
<button id="btn2">button 2</button>
</div>
<script>
var parent = document.querySelector('.parent');
parent.addEventListener('click', getEventTarget);
function getEventTarget(e) {
console.log(e.target); // <button id="btn1">button 1</button>
console.log(e.currentTarget); // <div class="parent">...<div>
console.log(this); // <div class="parent">...<div>
console.log(e.currentTarget === this); // true
}
</script>
만약 첫번째 버튼(button 1)을 클릭하게 되면 결과는 위와 같이 나온다.
<div class="parent">
<input type="text" class="val">
<button id="btn">button</button>
</div>
<script>
var inputBox = document.querySelector('.val');
inputBox.addEventListener('keyup', getEventType);
function getEventType(e) {
console.log(e.type); // keyup
console.log(e.keyCode); // 13
}
</script>