Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프론트엔드
- 자바문제풀이
- github
- 반응형 페이지
- 코딩테스트
- node
- react-router-dom
- 그럼에도 불구하고
- node.js
- 자바
- TypeScript
- 그럼에도불구하고
- JavaScript
- frontend
- Servlet
- media query
- max-width
- git
- webpack
- redux
- 변수
- 코드업
- CSS
- @media
- coding
- JS
- HTML
- react
- java
- cleancode
Archives
- Today
- Total
그럼에도 불구하고
[JavaScript] 이벤트 리스너 1회 실행 / 삭제 본문
이벤트 리스너를 1회만 실행하는 법과 삭제하는 법에 대해 알아보자
[ 이벤트 리스너 1회 실행하기 ]
addEventListener()의 세 번째 인수에 옵션을 지정할 수 있다. 반드시 옵션을 설정할 필요는 없으며, 필요에 따라 설정이 가능하다.
세 번째 인수로 지정할 수 있는 옵션은 다음과 같다.
옵션 | 의미 | 타입 |
capture | 이벤트 캡쳐 여부 | 진릿값 |
once | 리스너 1회 실행 여부 | 진릿값 |
passive | 패시브 이벤트 여부 | 진릿값 |
다음 예제를 보자
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button>버튼</button>
<script>
const option = {
once : true
};
const btn = document.querySelector('button');
btn.addEventListener('click', onClick, option );
function onClick() {
alert('이벤트는 한 번만 실행할 수 있어요');
}
</script>
</body>
</html>
버튼을 눌렀을 때 이벤트는 한 번만 발생하고 그 이후로는 발생하지 않는다.
[ 이벤트 리스너 삭제하기 ]
removeEventListener()를 사용해 이벤트 리스너 삭제가 가능하며, 이벤트 감시 작업을 취소할 수 있다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button>버튼</button>
<script>
const btn = document.querySelector('button');
btn.addEventListener('click', onClick);
setTimeout(() => {
btn.removeEventListener('click', onClick);
console.log('Event 삭제');
},3000)
function onClick() {
alert('반가워요');
}
</script>
</body>
</html>
페이지가 실행되고 3초까지는 버튼을 누르면 alert 창이 나오지만 그 이후로는 나오지 않는다.
'JavaScript > JavaScript basics' 카테고리의 다른 글
[JavaScript] 정규표현식이란? (0) | 2023.01.16 |
---|---|
[JavaScript] 마우스 이벤트란? (0) | 2023.01.10 |
[JavaScript] FileReader 객체에 대해 알아보자 (0) | 2023.01.05 |
[JavaScript] encodeURI / decodeURI란? (0) | 2023.01.03 |
[JavaScript] this에 대해 알아보자 (0) | 2022.12.30 |
Comments