▶ 좋아요 + ajax
| 기본적인 큰 로직은 팔로우와 동일 차이점 : 좋아요 버튼은 팔로우 버튼과 달리 한 페이지에 여러 개가 존재한다 그래서 ★ 어떤 좋아요 버튼이 눌린건지 알아야한다 ★ 근데 모든 좋아요 버튼에 이벤트 리스너를 할당해야 할까? 아니다, 그럴 필요는 없음 버블링을 쓰면 된다 => 버블링 event.currentTarget 핸들러가 부착된 대상 event.target 실제 이벤트가 발생한 지점 공통된 부모의 역할을 할 수 있는 부모 태그에만 이벤트 핸들러를 부착한다 |
* 버블링 한 요소에 이벤트가 발생하면, 이 요소에 할당된 핸들러가 동작하고 이어서 부모 요소의 핸들러가 동작하는 현상 가장 최상단의 조상 요소 (document)를 만날 때까지 이 과정이 반복되면서, 요소 각각에 할당된 핸들러가 동작한다 Q. 버블링이 필요한 이유 ? 버튼이 여러개 있을 때, 각 버튼마다 이벤트 핸들러를 할당하지 않아도 된다. 각 버튼의 공통 조상인 div 요소에 이벤트 핸들러 1개만 할당하면 된다. ![]() |
▶ currentTarget & target
| currentTarget | target |
| 현재 요소 항상 이벤트 핸들러가 연결된 요소만을 참조하는 속성 this와 같다 |
이벤트가 발생한 가장 안쪽의 요소(target)을 참조하는 속성 실제 이벤트가 시작된 요소 버블링이 진행되어도 변하지 않음 |
'WEB > JavaScript' 카테고리의 다른 글
| [JavaScript][비동기 with Django] 6. Ajax 적용, 좋아요 버튼 (0) | 2024.04.25 |
|---|---|
| [JavaScript][비동기 with Django] 4. Ajax 적용, 팔로우 버튼 (0) | 2024.04.25 |
| [JavaScript][비동기 with Django] 3. Ajax 적용, 팔로우 버튼 (0) | 2024.04.25 |
| [JavaScript][비동기 with Django] 2. 비동기 팔로우 구현 (0) | 2024.04.25 |
| [JavaScript][비동기 with Django] 0. 목표 (0) | 2024.04.25 |
