充当可投票的javascript投票按钮

前端之家收集整理的这篇文章主要介绍了充当可投票的javascript投票按钮前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用名为 acts_as_votable的宝石来使我的模型可以投票.

目前一切正常.

但每次有人投票支持帖子时,页面都必须刷新.如何在没有页面刷新的情况下让投票工作.我可以添加一个简单的JavaScript吗?

这是我在控制器中的内容

def vote
  @post = Post.find(params[:post_id])
  @post.liked_by current_user
  respond_to do |format|
    format.html {redirect_to :back }
  end
end

以下是我的看法:

<%= link_to “like post",like_post_path(@post),method: :put %>

解决方法

一个非常简单的版本可能如下所示:

ruby

def vote
  @post = Post.find(params[:post_id])
  @post.liked_by current_user
  respond_to do |format|
    format.html {redirect_to :back }
    format.json { render json: { count: @post.liked_count } }
  end
end

HTML

<%= link_to 'like',vote_path(@post),class: 'vote',remote: true,data: { type: :json } %>

JS

$('.vote')
  .on('ajax:send',function () { $(this).addClass('loading'); })
  .on('ajax:complete',function () { $(this).removeClass('loading'); })
  .on('ajax:error',function () { $(this).after('<div class="error">There was an issue.</div>'); })
  .on('ajax:success',function (data) { $(this).html(data.count); });

这是一个非常基本的版本,显示了基本方法,但它有一些明显的缺陷:

>没有办法“不投票”>“装载”指标不是很好的用户体验;使用JS,我们可以始终显示用户的当前状态,并在后台处理与服务器的同步>视图中的任何HTML缓存都会破坏它

原文链接:https://www.f2er.com/js/159759.html

猜你在找的JavaScript相关文章