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 |
Tags
- 변수
- 그럼에도불구하고
- CSS
- node
- react
- 코딩테스트
- frontend
- JavaScript
- react-router-dom
- webpack
- 자바
- git
- 자바문제풀이
- coding
- node.js
- 반응형 페이지
- 코드업
- github
- media query
- 그럼에도 불구하고
- cleancode
- TypeScript
- redux
- HTML
- max-width
- java
- JS
- Servlet
- @media
- 프론트엔드
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