일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- windows
- 배열
- Java
- 이클립스
- 테이블
- ArrayList
- Files
- html
- javascript
- table
- Visual Studio Code
- list
- IntelliJ
- Button
- CSS
- 자바스크립트
- vscode
- CMD
- input
- string
- Maven
- Eclipse
- 이탈리아
- date
- 문자열
- 자바
- json
- Array
- 인텔리제이
- js
- Today
- Total
어제 오늘 내일
[Javascript] 이벤트 추가, 제거하기 본문
이번에는 element에 이벤트를 추가, 삭제 하는 방법을 정리해 보도록 하겠습니다.
1. 이벤트 추가하기 - addEventListener()
2. 이벤트 제거하기 - removeEventListener()
1. 이벤트 추가하기 - addEventListener()
객체에 이벤트를 추가하려면 addEventListener() 메소드를 사용합니다.
element.addEventListener(type, eventListener);
addEventListener()는 2개의 파라미터를 입력받습니다.
- type : 이벤트 타입
- eventListener : 이벤트가 발생했을 때 실행할 함수
이벤트 추가하기
<input type='button' id='my_button' value='클릭하세요' />
const my_btn = document.getElementById('my_button');
my_btn.addEventListener('click', () => {
alert("안녕하세요!!");
});
위 예제는 '클릭하세요' 버튼에,
클릭 이벤트가 발생하면, '안녕하세요!!'라는 alert을 띄웁니다.
여러개의 이벤트 리스너 추가하기
<input type='button' id='my_button' value='클릭하세요' />
const my_btn = document.getElementById('my_button');
my_btn.addEventListener('click', () => {
alert("안녕하세요!!");
});
my_btn.addEventListener('click', () => {
alert("만나서 반가워요!!");
});
addEventListener() 메소드를 사용하면
같은 타입의 이벤트라도 여러개를 추가할 수 있습니다.
위 코드는 'my_button' 버튼에 2개의 click 이벤트 리스너를 추가하였습니다.
2. 이벤트 제거하기 - removeEventListener()
이벤트를 삭제할 때는 removeEventListener() 메소드를 사용합니다.
element.removeEventListener(type, eventListener);
이 메소드는 아래의 2가지를 파라미터로 입력 받습니다.
- type : 삭제할 이벤트 타입
- eventListener : 삭제할 이벤트 리스터 (addEventListener()의 2번째 파라미터로 전달된 함수)
removeEventListener() 메소드를 사용해서 이벤트를 삭제하기 위해서는
addEventListener() 메소드를 사용하여 이벤트를 등록할 때,
2번째 파라미터로 전달하는 eventListener를 익명함수로 전달하면 안됩니다.
removeEventListener() 메소드를 호출할 때 2번째 파라미터로 넣어주어야 하기 때문입니다.
<div id='my_div'></div>
<div id='result'></div>
<input type='button' id='delete_event' value='이벤트 삭제' />
#my_div {
width: 100px;
height: 100px;
background: green;
}
// 1. my_div 영역에 이벤트 등록
const my_div = document.getElementById('my_div');
const myDivEventHandler = (e) => {
const result_div = document.getElementById('result');
result_div.innerText = `x : ${e.offsetX}, y : ${e.offsetY}`
};
my_div.addEventListener('mousemove', myDivEventHandler);
// 2. 'my_div'에 적용된 이벤트 삭제
const delete_btn = document.getElementById('delete_button');
delete_event.addEventListener('click', () => {
my_div.removeEventListener('mousemove', myDivEventHandler);
});
위 예제는,
초록색 div 영역에서 마우스를 움직이면 마우스의 offset을 출력해주고 있습니다. (mousemove 이벤트)
그리고, '이벤트 삭제' 버튼을 클릭했을 때,
div 영역에 적용된 mousemove 이벤트가 삭제됩니다.
my_div.addEventListener('mousemove', myDivEventHandler);
my_div.removeEventListener('mousemove', myDivEventHandler);
이벤트를 삭제하기 위해서
addEventListener의 2번째 파라미터로 익명함수가 아닌
myDivEventHandler라는 함수를 전달했습니다.
이벤트를 추가하고, 삭제하는 방법을 알아보았습니다.
'IT > Javascript' 카테고리의 다른 글
[Javascript] 키보드 이벤트(keyboard event) 종류 (0) | 2021.01.17 |
---|---|
[Javascript] 이벤트 한번만 실행되도록 하기 (0) | 2021.01.17 |
[Javascript] 마우스 이벤트(event) 종류 (0) | 2021.01.16 |
[Javascript] 숫자를 문자로 변환하는 4가지 방법 (1) | 2021.01.16 |
[Javascript] 숫자 콤마 제거 하는 2가지 방법 (1) | 2021.01.16 |