일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 딥러닝
- html기초
- K-MOOC
- 자바입력받기
- K-MOOC 단국대학교 홍보단
- 컴파일시스템
- 2차원배열정렬
- 오블완
- 자바스크립트
- 머신러닝
- 해시
- Entity
- stringreader
- Node
- 블록체인 강의
- 시스템프로그래밍
- 블록체인
- 혁신의기술2:신뢰의미래 블록체인을 만나다
- attribute
- StringTokenizer
- 자바문자열구분
- CSS 기초
- 디스크블록할당
- 블록체인강의
- 티스토리챌린지
- 단국대학교 k-mooc
- national instruments
- StringBuilder
- biginteger사용법
- 우선순위큐
- Today
- Total
열정 실천
[JavaScript] 이벤트!!!! - 이벤트 리스너 등록, 이벤트 리스너 삭제 본문
이벤트
웹 내에서 일어나는 사건을 뜻한다. (클릭, 키보드 등)
각각의 이벤트들은 이벤트가 실행되면 실행될 코드 블록인 이벤트 핸들러를 가진다.
event handler register : 이벤트가 발생하면 어떤 함수를 호출할지 등록해놓는 것
📌 이벤트 핸들러 등록에는 두 가지 방법이 있다.
1. 타겟.on이벤트명 = 이벤트핸들러함수
2. 타겟.addEventListner = ('이벤트명', 이벤트핸들러함수);
예시)
1. button.onclick = handleClick
2. button.addEventListner = ("click", handleClick);
보통 2번 방법을 많이 사용하기 때문에 2번으로 공부해보자!
일반적인 사용 방법은 다음과 같다.
const button = document.querySelector('#inputBtn');
function handleTitleClick(){
title.style.color = "blue";
}
button.addEventListner("click", handleTitleClick);
의미 : button에 클릭 이벤트가 발생하면 handleTitleClick이라는 함수를 실행해라!
위 코드를 해석해보면
1번째줄 button 변수에 아이디가 'inputBtn'인 html 요소 저장
5번째줄 button 변수에 'click' 이벤트 핸들러 등록 - button이 클릭되면 handleTitleClick 함수 실행
2-4번째줄 handleTitleClick 함수 정의
*이벤트 속성에 함수를 대입하는 것과 함수호출문을 대입하는 것은 다르다
( 함수 : handleTitleClick (o), 함수호출문 : handleTitleClick() (x) )
굳이 함수 명을 지정하지 않고 화살표함수를 이용해서 넣어줄 수 있다.
const button = document.querySelector('#inputBtn');
button.addEventListner('click', ()=> {
함수 내용
});
더 짧게는,,, 이렇게까지 가능하다!
document.querySelector('#inputBtn').addEventListner('click', ()=> {
함수 내용
});
🍯
element에 어떤 리스너를 달아야할지 모를때에는
console.dir(요소객체); 를 입력한다음 on~ 으로 시작하는 속성을 찾아보자!
const oo = document.querySelector("#n0");
console.dir(oo);
개발자도구 콘솔창을 확인해보면 해당 객체가 출력된 것을 볼 수 있다.
그 안에 on~으로 시작하는 속성이 모두 이벤트들이다.
📌 이벤트 리스너 삭제하기
이벤트 리스너를 삭제할 때는 removeEventListener 함수를 이용한다.
[구문]
이벤트타깃.removeEventListner('이벤트명', 이벤트 핸들러 함수, [옵션])
[사용예시]
const box = document.querySelector('.Btn');
box.addEventListener('click', onClickBtn);
//3초후 리스너의 함수를 삭제
setTimeout( ()=> {
box.removeEventListener('click', onClickBtn);
}, 3000);
function onClickBtn() {
console.log('box 클릭');
}
🚨주의 : removeEventListner()를 사용할 때에는 화살표 함수 사용이 불가능하다. 함수명을 꼭 지정!!
'개발 공부 > JS' 카테고리의 다른 글
[JavaScript] 데이터 처리 방식 (동기와 비동기) (0) | 2023.05.15 |
---|---|
[JavaScript] 자바스크립트 - 시간 다루기 (setInterval(), padStart() ) (0) | 2023.05.15 |
[JavaScript] 이벤트 객체 (0) | 2023.05.12 |
[JavaScript] DOM이 뭔가요? ----- getElementById(), getElementByClassName(), getElementByTagName(), querySelector(), querySelectorAll() (0) | 2023.05.11 |
[JavaScript] JS 완전 기초 문법 한 방에 끝내기!! (0) | 2023.05.09 |