Jquery 使用“this”一键操作两个div

Jquery 使用“this”一键操作两个div,jquery,Jquery,我正在做一个大学的小项目,这是一个社交网络。我试图添加两个选项,喜欢和不喜欢。一切都很好,但问题是,如果一个帖子已经被某个人喜欢,然后他按下“不喜欢”按钮,它会不喜欢这个帖子,但它不会同时不喜欢这个帖子。在内部,它工作良好,这意味着如果有人不喜欢某个帖子,它将自动与该帖子不同。但是我无法通过ajax/jquery显示它。请帮忙 这里我只是展示jQuery部分,实际上它是与ajax一起工作的 $(".like").click(function(e){ e.preventDefault();

我正在做一个大学的小项目,这是一个社交网络。我试图添加两个选项,喜欢和不喜欢。一切都很好,但问题是,如果一个帖子已经被某个人喜欢,然后他按下“不喜欢”按钮,它会不喜欢这个帖子,但它不会同时不喜欢这个帖子。在内部,它工作良好,这意味着如果有人不喜欢某个帖子,它将自动与该帖子不同。但是我无法通过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');
    }
});

您需要选择另一个控件,然后删除该类。您的HTML非常简单,因此可以使用查找正确的元素

$(".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');
    }
});

如果我猜对了:

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')
});

非常简单

通过php我做到了这一点。但正如演示中所示,我无法使用jQuery立即显示它:/嗯,在javascript代码中,您没有“不喜欢”或“不喜欢”的代码。所以是的,那没什么用:-谢谢..:答案奏效了。。bt musefan在你面前发布了答案,所以我不得不接受他的答案。Thanx a lillion^.^@user3515181:请随意接受最适合您的答案。虽然接受第一个贴出的答案是常见的,但这通常只适用于答案几乎相同的情况。我认为这个答案的差异足以让你选择你的偏好,只是在这里提供帮助:-不在乎要点。。。除非200k为我赢得了一辆保时捷,否则你可以通过使用toggleClass函数来简化它。@SteveWellens:是的,我从另一个答案中注意到了这一点。但是,我将保留这一部分,因为我认为它通过保留原始代码使其更易于理解所发生的事情,因为实际上切换类在这里不起作用,因为我正在检查它是否喜欢类,然后不像ajax函数运行,或者像ajax函数运行。@user3515181:这是一个很好的观点,如果您必须执行检查,那么使用切换没有多大意义