Javascript Rails 4:coffeescript向上投票/向下投票
这与stackoverflow上的类似-您可以向上投票一条评论,当您投票时,它会用橙色箭头标记。但是,我有两个图标(开和关)用于upvote和2个用于downvote。 问题是,当我点击upvote时,它会将图标更改为“on”,这很好,但当我点击downvote之后,upvote保持不变(带有on图标)。所以,我基本上有两个“开”的图标 目标:当您决定更改投票时,上一次选择的图标应为“关闭” -我当前的代码-Javascript Rails 4:coffeescript向上投票/向下投票,javascript,ruby-on-rails,ruby-on-rails-4,coffeescript,Javascript,Ruby On Rails,Ruby On Rails 4,Coffeescript,这与stackoverflow上的类似-您可以向上投票一条评论,当您投票时,它会用橙色箭头标记。但是,我有两个图标(开和关)用于upvote和2个用于downvote。 问题是,当我点击upvote时,它会将图标更改为“on”,这很好,但当我点击downvote之后,upvote保持不变(带有on图标)。所以,我基本上有两个“开”的图标 目标:当您决定更改投票时,上一次选择的图标应为“关闭” -我当前的代码- <div class="thumbsup"> <%= lin
<div class="thumbsup">
<%= link_to image_tag('othericons/thumbsup_off.PNG', height: '20', width: '20', id: "imgClickAndChange", :onclick => "window.changeImage($(this))"), like_post_comment_path(comment.post_id, comment), method: :put, :remote => true %>
</div>
<div class="thumbsdown">
<%= link_to image_tag('othericons/thumbsdown_off.PNG', height: '20', width: '20', id: "imgClickAndChange", :onclick => "window.toggleImage($(this))"), dislike_post_comment_path(comment.post_id, comment), method: :put, :remote => true %>
</div>
您可以更好地处理来自服务器的数据:
#app/controllers/votes_controller.rb
def like
#your code
status = "on"
respond_to do |format|
format.js { render json: status.to_json }
end
end
#same for dislike, except status = "off"
然后,您可以使用ajax:success
回调来处理图像:
$(document).on "ajax:success", "#imgClickAndChange", (data) ->
$(this).attr("src"), "/assets/othericons/thumbsup_"+ data +".PNG")
现在,我甚至不知道你的咖啡脚本是如何启动的?它不受任何事件的约束
$(document).on "ajax:success", "#imgClickAndChange", (data) ->
$(this).attr("src"), "/assets/othericons/thumbsup_"+ data +".PNG")