반응형
profile.html
- 이전에 followState에 따라 버튼에 어떤 메시지가 보일지를 세팅했다.
- 버튼을 클릭했을때 팔로우, 혹은 언팔로우 기능을 실행할 자바스크립트 코드를 삽입했다.
- toggleSubscribe 를 클릭했을때 this를 전달하는데 여기서 this란 이벤트 정보를 의미한다.
<div th:if="${dto.followState == true}">
<button class="cta blue" th:onclick="toggleSubscribe([[${dto.user.id}]], this)">팔로우 취소</button>
</div>
<div th:if="${dto.followState == false}">
<button class="cta" th:onclick="toggleSubscribe([[${dto.user.id}]],this)">팔로우</button>
</div>
profile.js
- toggleClass: 클래스의 css이름을 넣었다 뺐대 함
- toggleSubscribe는 toUserId(현재 페이지 주인의 id)와 obj를 받는다.
1. 버튼이 '언팔로우'일때
정상적으로 끝나면 "팔로우" 와 클래스의 색을 blue로 표시하게 한다.
2. 버튼이 '팔로우' 일때
정상적으로 끝나면 "팔로우" 와 클래스의 색을 blue로 표시하게 한다.
function toggleSubscribe(toUserId, obj) {
if ($(obj).text() === "팔로우 취소") {
$.ajax({
type:"delete",
url: "/api/follow/"+toUserId,
dataType: "json"
}).done(res=>{
$(obj).text("팔로우");
$(obj).toggleClass("blue");
}).fail(error=>{
console.log("팔로우취소실패", error);
});
} else {
$.ajax({
type:"post",
url: "/api/follow/"+toUserId,
dataType: "json"
}).done(res=>{
$(obj).text("팔로우취소");
$(obj).toggleClass("blue");
}).fail(error=>{
console.log("팔로우하기실패", error);
});
}
}
'Study > SpringBoot' 카테고리의 다른 글
[Springboot] 팔로우 정보 모달에 노출하기2 - 쿼리작성 (0) | 2022.05.25 |
---|---|
[Springboot] 팔로우 정보 모달에 노출하기1 - dto 및 컨트롤러 설정 (0) | 2022.05.24 |
[Springboot] 팔로우(언팔로우)기능 - 1 팔로우상태 및 팔로우수 구하기 (0) | 2022.05.23 |
[Springboot] 이미지 업로드 - 2 유효성 검사 및 양방향 매칭 설정 (0) | 2022.05.22 |
[Springboot] 이미지 업로드 - 1 이미지 저장(로컬 및 DB) (0) | 2022.05.21 |