我正在从事一个有点社交网络的小型大学项目。我试图添加两个选项Like和Dislike。一切都工作正常,但问题是,如果一个帖子已被某人喜欢然后他不喜欢,它会不喜欢发帖但它不会同时发帖。在内部它工作正常,意味着如果有人不喜欢一个帖子,它将自动不同于帖子。但是我无法通过ajax / jquery显示它。请帮助。
这里我只是展示jQuery部分,实际上它正在使用ajax。
$(".like").click(function(e){
e.preventDefault();
if($(this).hasClass('liked'))
{
$(this).removeClass('liked');
}
else
{
$(this).addClass('liked');
}
});
$(".dislike").click(function(e){
e.preventDefault();
if($(this).hasClass('disliked'))
{
$(this).removeClass('disliked');
}
else
{
$(this).addClass('disliked');
}
});
答案 0 :(得分:0)
您需要选择其他控件,然后删除该类。您的HTML非常简单,因此您可以使用siblings
function查找正确的元素...
$(".like").click(function (e) {
e.preventDefault();
if ($(this).hasClass('liked')) {
$(this).removeClass('liked');
} else {
$(this).addClass('liked');
$(this).siblings(".dislike").removeClass('disliked');
}
});
$(".dislike").click(function (e) {
e.preventDefault();
if ($(this).hasClass('disliked')) {
$(this).removeClass('disliked');
} else {
$(this).addClass('disliked');
$(this).siblings(".like").removeClass('liked');
}
});
答案 1 :(得分:0)
所以,如果我正确猜测:
if you click dislike
if it is already disliked
unset disliked
else
'un-like'
set disliked
if you click like
if it is already liked
unset liked
else
'un-dislike'
set liked
如果是这样,那么为什么你不会不喜欢'并且'不喜欢'它?
$('.like').bind('click', function(event){
event.preventDefault();
$(this).toggleClass('liked').siblings('.dislike').removeClass('disliked')
});
$('.dislike').bind('click', function(event){
event.preventDefault();
$(this).toggleClass('disliked').siblings('.like').removeClass('liked')
});
相当简单