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
- clipboardapi
- axios
- 타입스크립트
- 백준
- styledcomonents
- js
- 혼자공부하는머신러닝
- 알고리즘
- 딥러닝
- 백준 #코딩테스트
- Redux
- CSS
- 혼공머신
- 머신러닝
- reactmemo
- REACT
- 초기값 설정하기
- 에러해결방안
- 혼자공부하는머신러닝딥러닝
- 혼공단
- error맛집
- TS
- 혼공챌린지
- typeScript
- useEffect
- 구조분해할당
- 유니티 #게임개발
- 코딩테스트
- 리액트
- 백준 #코딩테스트 #코테 #알고리즘
Archives
- Today
- Total
좌충우돌 개발자의 길
[JS] DOM & EVENT #6 이벤트 버블링, 이벤트 위임 본문
1. 이벤트 전파 방식 : 이벤트 버블링
자식요소에서 발생한 이벤트 객체는 부모와 그 부모를 통해 전파 (하위요소에서 상위요소로 올라감)

2. 버블링할 수 있는 이벤트와 아닌 이벤트

3. event.stopPropagation() : 이벤트 버블링 막기

- 이벤트 버블링을 막아야하는 경우는 드물어서 이걸 사용하는 일도 드물다
4. 이벤트 위임
- 자신에게 발생하는 일을 다른 요소에서 처리하게 만들기 => 버블링을 이용하자!


- currentTarget : 항상 ul을 가리킴 => 핸들러가 등록된 요소
- target : 클릭된 요소를 가리킴 => 이벤트를 발생시키는 요소 이벤트
- 이벤트 위임x : target === currentTarget
function clickHandler(event) {
let target = event.target;
if(target.tagName="A"){ //target이 a태그이면
target = target.parentElement; //target을 li태그로 바꿔줌
} else if (target === event.currentTarget){ //target이 ul태그이면
return; //그냥 return (여기서 끝내라)
}
for (c of colors){
c.classList.remove("on");
}
target.classList.add("on");
}
출처 : 코딩앙마
'STUDYING > Javascript' 카테고리의 다른 글
| [JS] 현재 웹페이지 주소 가져오기 (0) | 2022.05.26 |
|---|---|
| [JS] DOM & EVENT #5 이벤트 핸들러(Event Handler) (0) | 2022.05.22 |
| [JS] DOM & EVENT #4 CSS style, class 제어 (0) | 2022.05.21 |
| [JS] DOM & EVENT #3 노드 생성, 추가, 복제, 삭제 (0) | 2022.05.20 |
| [JS] DOM & EVENT #2 부모, 자식, 형제 노드 (0) | 2022.05.19 |