Jquery 通过单击更新ajax请求中的2个变量(rails)
我向服务器发出ajax请求,服务器用JSON响应我 成功运行时的My js.file: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
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");
它可能会起作用不,它不起作用。我仍然需要重新加载页面以查看递减的值