자바스크립트에서 콜백이벤트가 딱 한번만 일어나게 하고싶을 때 사용할 수 있는 꿀팁!
바로 이벤트리스너의 세번째 인자값으로 once 옵션을 추가해주면 된다.
document.body.addEventListener('click', () => {
console.log('I run only once! 😇');
}, { once: true });
기본값은 false로 지정되있어, 클릭될 때마다 이벤트가 항상 일어난다.
once: true로 지정해주면 처음 이벤트가 일어났을 때에만 콜백함수가 실행된다.
혹은 이벤트가 일어났을 때 해당 이벤트를 remove해주는 함수를 만들어줄 수도 있다.
근데 once옵션이 너무 간단하니까~ 그걸 쓸 듯?
document.body.addEventListener('click', cb);
function cb() {
console.log('Hi! 👋');
document.body.removeEventListener('click', cb);
}

참고자료
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
EventTarget.addEventListener() - Web APIs | MDN
The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
developer.mozilla.org
'Front-End Developer > JavaScript' 카테고리의 다른 글
Promise/fetch 텍스트파일에 있는 텍스트는 어떻게 가져올건데? (2) | 2022.06.23 |
---|---|
JavaScript sort() not working | sort()가 안될 때 (0) | 2022.06.01 |
JS로 생성한 요소 for문으로 HTML에 붙여주기 (0) | 2022.05.31 |
for 반복문으로 코드 n배 절약해보기 + 이벤트버블링 (0) | 2022.05.28 |
(JS기초)변수의 할당, 선언, 범위 (0) | 2022.05.22 |