어떠한 버튼을 클릭했을 때 어떠한 액션이 일어나게 하려면 어떻게 해야 할까요?
위와 같이 마우스를 이용해서 버튼을 클릭할 때는 클릭 "이벤트"가 발생합니다.
이렇게 이벤트가 발생했을 때 어떠한 액션을 위한 함수를 호출하는데 그 함수가 바로 이벤트 리스너 입니다.
위에서 말한 것 처럼 어떠한 이벤트가 발생했을 때 이벤트 리스너를 호출하기 위해서는 이벤트 리스너를 해당 객체나 요소에 등록해줘야 합니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="<https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css>" />
<link rel="stylesheet" href="<https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css>" />
<script src="<https://cdn.jsdelivr.net/npm/[email protected]/dst/js/bootstrap.bundle.min.js>"></script>
</head>
<body>
<div id="body-container" class="container mt-5">
<a>Hi</a>
<p id="text">Hello</p>
<button class="btn">Button</button>
<ul class="list-group mt-5 mb-5">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
</ul>
</div>
<script src="event.js"></script>
</body>
</html>
window.onload = () => {
// 문서가 load 될 때 이 함수 실행
let text = document.getElementById("text");
// 아이디가 'text'인 요소를 return
text.innerHTML = "HTML 문서 loaded";
};
<button onclick="alert('버튼이 클릭됐습니다.')">Button입니다.</button>
element.addEventListener(이벤트명*, 실행할 함수명(listener), 옵션*);
const aElemnt = document.querySelector("a");
aElemnt.addEventListener("click", () => {
alert("a element clicked");
});
이벤트가 발생할 때 이벤트 객체를 가져올 수 있습니다.
const buttonElement = document.querySelector(".btn");
buttonElement.addEventListener("click", handleClick);
function handleClick(event) {
let val;
val = event;
// Event target element
val = event.target;
val = event.target.id;
val = event.target.className;
val = event.target.classList;
// Event type
val = event.type;
// 윈도우로부터의 거리 좌표
val = event.clientY;
val = event.clientX;
// 요소로부터의 거리 좌표
val = event.offsetY;
val = event.offsetX;
console.log(val);
}