WEB/JavaScript

[JavaScript][비동기 with Django] 5. Ajax 적용, 좋아요 버튼

bay07 2024. 4. 25. 14:53

▶ 좋아요 + ajax

기본적인 큰 로직은 팔로우와 동일 
차이점 : 좋아요 버튼은 팔로우 버튼과 달리 한 페이지에 여러 개가 존재한다
그래서
★ 어떤 좋아요 버튼이 눌린건지 알아야한다 ★ 

근데 
모든 좋아요 버튼에 이벤트 리스너를 할당해야 할까?
아니다, 그럴 필요는 없음 
버블링을 쓰면 된다 

=> 버블링 
event.currentTarget 핸들러가 부착된 대상
event.target 실제 이벤트가 발생한 지점

공통된 부모의 역할을 할 수 있는 부모 태그에만
이벤트 핸들러를 부착한다 

* 버블링 

한 요소에 이벤트가 발생하면, 이 요소에 할당된 핸들러가 동작하고 
이어서 부모 요소의 핸들러가 동작하는 현상

가장 최상단의 조상 요소 (document)를 만날 때까지 
이 과정이 반복되면서, 요소 각각에 할당된 핸들러가 동작한다 

Q. 버블링이 필요한 이유 ?
버튼이 여러개 있을 때, 각 버튼마다 이벤트 핸들러를 할당하지 않아도 된다. 
각 버튼의 공통 조상인 div 요소에 이벤트 핸들러 1개만 할당하면 된다. 


 

currentTarget & target

currentTarget target
현재 요소
항상 이벤트 핸들러가 연결된 요소만을 참조하는 속성
this와 같다
이벤트가 발생한 가장 안쪽의 요소(target)을 참조하는 속성 
실제 이벤트가 시작된 요소 
버블링이 진행되어도 변하지 않음