Jquery 通过单击更新ajax请求中的2个变量(rails)

Jquery 通过单击更新ajax请求中的2个变量(rails),jquery,ruby-on-rails,Jquery,Ruby On Rails,我向服务器发出ajax请求,服务器用JSON响应我 成功运行时的My js.file: success: function(data){ //was disliked if ($(_this).hasClass( "disliked" )){ $(_this).removeClass("disliked").addClass("liked"); dislike_action.text(data.post_dislikes); $(_this).text(data.p

我向服务器发出ajax请求,服务器用JSON响应我

成功运行时的My js.file:

success: function(data){
   //was disliked
   if ($(_this).hasClass( "disliked" )){
   $(_this).removeClass("disliked").addClass("liked");
   dislike_action.text(data.post_dislikes);
   $(_this).text(data.post_likes);
 }
我的管理员回复:

render json: { post_likes: @post.likes_count, post_dislikes: @post.dislikes_count }
问题是,它只是在发布后更改:

        $(_this).text(data.post_likes);
但并非两者都有:

dislike_action.text(data.post_dislikes);
$(_this).text(data.post_likes);
要查看post_不喜欢的内容的更改,我必须重新加载页面,那么问题出在哪里

这是我的完整js文件:

var dislike_action = $(".dislike_action");
var like_action = $(".like_action");

$(function(){  
  var dislikes_count = $(".dislikeAction").text();
  var likes_count = $(".likeAction").text();
  $(".likeAction").click(function(){
      var current_post_tr = $(this).parents('tr')[0];
      var _this = this
      $.ajax({
      url: 'http://localhost:3000/dashboard/' + $(current_post_tr).attr('data-post_id') +'/like',
        type: 'PUT',
        success: function(data){
          //was disliked
          if ($(_this).hasClass( "disliked" )){
            $(_this).removeClass("disliked").addClass("liked");
            dislike_action.hide();
            $(_this).text(data.post_likes);
          }//was neither liked nor disliked
          else {           
            $(_this).addClass("liked").text(data.post_likes);
          }
        },
        error: function(data){
          alert(data.responseText);
          console.log(data); 
        }
      });
    });

  $(".dislikeAction").click(function(){
      var current_post_tr = $(this).parents('tr')[0];
      var _this = this
      $.ajax({
      url: 'http://localhost:3000/dashboard/' + $(current_post_tr).attr('data-post_id') +'/dislike',
        type: 'PUT',
        success: function(data){
          //was liked
          if ($(_this).hasClass( "liked" )){
            $(_this).removeClass("liked").addClass("disliked");
            like_action.text(data.post_likes);
            $(_this).text(data.post_dislikes);
          }//was neither liked nor disliked
          else {           
            $(_this).addClass("disliked").text(data.post_dislikes);
          }
        },
        error: function(data){
          alert(data.responseText); 
          console.log(data);
        }
      });
    });

});

我不能肯定没有看到你的html,但看起来你的问题可能是因为每个喜欢和不喜欢有两个不同的类

您在顶部声明了这一点

var dislike_action = $(".dislike_action");
var like_action = $(".like_action");
但是

$(“.dislikeAction”)和$(“.likeAction”)在其他地方使用

我想如果你把顶部的声明改成这个

var dislike_action = $(".dislikeAction");
var like_action = $(".likeAction");

它可能会起作用

不,它不起作用。我仍然需要重新加载页面以查看递减的值