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 |
Tags
- CSS
- 머신러닝
- 구조분해할당
- REACT
- 타입스크립트
- 혼자공부하는머신러닝딥러닝
- 혼공단
- 백준 #코딩테스트 #코테 #알고리즘
- 백준 #코딩테스트
- 백준
- 딥러닝
- reactmemo
- axios
- Redux
- clipboardapi
- 코딩테스트
- TS
- 유니티 #게임개발
- 초기값 설정하기
- 혼자공부하는머신러닝
- error맛집
- useEffect
- 혼공머신
- 리액트
- 혼공챌린지
- js
- 알고리즘
- 에러해결방안
- typeScript
- styledcomonents
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 |