我讀過類似的問題,並嘗試了不同的方法,但似乎沒有任何工作。我有一個喜歡系統。切換喜歡(充滿心臟圖標)和不喜歡(心臟平面圖標)之間的心臟圖像。如何將更改應用於jQuery中的當前類?
問題是,當我點擊like/heart按鈕時,所有其他記錄的心臟圖標變成喜歡狀態。同樣的數字也一樣。當我喜歡帖子時,所有貼子的數量變得相同。
此外,我正在運行一個AJAX請求來獲得點數。當我嘗試輸出喜歡和增加/減少,如果他們喜歡/不同,輸出是奇怪的。它去爲-1或01等
這是我main.blade.php:
<span class="activityLikes">
<input type="hidden" class="activityIdHidden" value="{{ $activity->activity_id }}">
<a class="likeBtn">
@if(Auth::user()->hasLikedActivity($activity))
<img class="likeImg likeTrue" src="IMG/icons/likeTrue.png" alt="likes">
@else
<img class="likeImg likeFalse" src="IMG/icons/like.png" alt="likes">
@endif
</a><span class="likesCount">{{ $activity->likes->count() }}</span>
</span>
這是我main.js文件:
$('.likeBtn').on('click', function(e){
e.preventDefault();
var likeCount = 0;
$.ajax({
type: 'GET',
url: './mainView/getLikeCount',
data: {activityId: activityId},
success: function(data){
likeCount = data;
},
error: function(e){
console.log(JSON.stringify("Exception: " + e));
}
});
$.ajax({
type: 'POST',
url: './mainView/postlike',
data: {activityId : activityId, user_id: user_id},
success: function(data){
if(data == "deleted"){
$('.likeImg').attr('src', 'IMG/icons/like.png');
$('.likesCount').text(likeCount - 1);
} else if(data == "liked"){
$('.likeImg').attr('src', 'IMG/icons/likeTrue.png');
$('.likesCount').text(likeCount + 1);
}
},
error: function(e){
console.log(JSON.stringify("Exception: " + e));
}
});
});
當我使用這個代碼和問題仍然像正好消失存在。它只喜歡第一篇文章 –
我認爲$(this)在這裏不起作用的原因是$(this)指向'',而你正試圖設置它的'attr('src',')。 ..')' –
我更新了我的帖子。這是一個標籤,但你需要更新裏面的img。我通過在搜索jQuery文檔後添加'.children('img')'來修復它(對不起,我不習慣jQuery) – 3Dos