我读过类似的问题,并尝试了不同的方法,但似乎没有任何工作。我有一个喜欢系统。切换喜欢(充满心脏图标)和不喜欢(心脏平面图标)之间的心脏图像。如何将更改应用于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