메세지 리액션 : 좋아요. 질문 드립니다.
좋아요 구현을 위해
append_message함수에서 icon 생성 시 addEventListener를 등록하였습니다.append_message(message, pk , sender, time, img){ const like_icon = document.createElement('i'); like_icon.id = `like-icon-${pk}`; like_icon.className = 'fa-regular fa-heart'; like_icon.addEventListener('click', () => {this.like_msg(pk)}); ... }like_msg에서 removeEventLister를 통해 기존에 등록된click를 해제하고 새로운 이벤트를 등록하였습니다.like_msg(pk){ const like_icon = document.querySelector(`#like-icon-${pk}`); like_icon.removeEventListener('click', () => {this.like_msg(pk)}); like_icon.addEventListener('click', () => {this.dislike_msg(pk)}); this.ws.send(JSON.stringify({ type : 'chat.message.like', pk : pk })) }
사진과 같이 좋아요는 잘 작동합니다.
다시 dislike를 하려면 계속 like_msg 이벤트가 동작합니다.
like_icon을 통해서 하트를 변경하였습니다.case 'chat.message.like': this.like_icon(pk, cnt); break;
event를 삭제하는 시점이 잘 못된것일까요? 제대로 삭제가 안 되더라구요.
like_icon에서도 removeEventListener를 실행했었는데 동일한 결과가 나왔습니다. 어떤 시점에서 이벤트 리스너를 해제해야 할까요?
Answer 1
1
안녕하세요.
버튼 하나에 dislike와 like 리스너를 별도의 함수로 등록하지 마시고,
하나의 함수 내에서 dislike와 like를 분기해서 처리하시는 것은 어떨까요?
혹은 버튼 2개를 만드시고 각각 dislike와 like를 처리하시는 것도 한 방법입니다.
살펴보시고 질문 남겨주세요.
화이팅입니다. :-)
유저목록 확인 문제 질문드립니다.
0
164
2
안녕하세요 선생님,
0
91
1
하나의 채팅방만 만들어보려고 하는데 잘 안되고 있습니다.
0
103
1
도커와 연동 관련 질문드립니다.
0
205
3
채팅방 참여자 목록 - 채팅방 입장/퇴장 실시간 이벤트 처리
0
165
2
안녕하세요, onopen() 문제로 질문드립니다.
0
137
2
Consumer Instances 관련 질문 있습니다.
0
72
2
안녕하세요, 요청은 채널스에서 먼저 받고, http 요청은 장고를 통해서 처리한다고 하셨는데요.
0
79
2
기능 구현 질문 드립니다.
0
115
1
git에 있는 코드를 다운 받아 실행 해봤는데 에러가 났습니다.
0
154
2
ValueError: No route found for path 'ws/liveblog/'.
0
134
2
지정 경로에 템플릿 파일 만드는 단축키가 뭔가요?
0
121
2
채팅 내역을 영구적으로 저장하고 싶습니다.
0
89
1
질문이 있습니다.
0
164
1
구독 채팅 구현
0
213
1
헷갈려서 질문드립니다.
0
357
2
@login_required 장식자를 적용한후에는 로그인을 성공하면 채팅방으로 어떻게 이동을 하는 건가요?
1
276
1
docker run -d --restart always --name redis7 --publish 6379:6379 redis:7
0
261
1
websocket 자바스크립트 클라이언트 구현?
0
361
1
{유저명}님이 메세지 입력 중입니다. 메세지 질문드립니다.
0
610
1
채팅 로비에서 유저수 노출을 위하여
0
326
1
채팅방에서 마지막 유저가 나가면 채팅방 자동 삭제 질문드립니다.
0
432
1
동기방식의 consumer 클래스와 비동기방식의 consumer클래스의 차이가 뭔지 궁금합니다.
0
425
1
라이브러리 인식
0
416
2

