如何构建类似按钮?

时间:2014-01-13 17:10:49

标签: javascript jquery ruby-on-rails ajax

如果这个问题非常基本,我很抱歉,不幸的是,除了JS和前端开发以外,我都是经验丰富的。 我想要完成的是构建一个非常简单的按钮(ala facebook),按下它后会改变,所以如果我点击按钮转换为'不同',如果我点击不同按钮转换为'喜欢'。 我正在使用Rails(4.0)和JQuery。

我现在所拥有的是一个在后端正常工作的按钮,但不能在前端工作,即它不会从不喜欢转变为不同或从不同转换为正确。

这是包含两个按钮的部分:

<div class="like-button">
  <% if current_user && current_user.liked?( object ) %>
    <%= link_to unlike_path( object ), method: :delete, remote: true, id: "like_button-#{ object.id }", class: 'like-button' do %>
      <span class="icon"></span>
      <span class="label m3">Non mi Piace</span>
    <% end %>
  <% else %>
    <%= link_to like_path( object ), method: :post, remote: true, id: "like_button-#{ object.id }", class: 'like-button' do %>
      <span class="icon"></span>
      <span class="label m3">Mi Piace</span>
    <% end %>
  <% end %>
</div>

一切正常,我知道,因为如果我重新加载页面并且显示正确的按钮,它会正确检查按钮的状态。 不幸的是我对JS不太确定(也因为直到现在我对前端问题几乎没有看见......):

$(".like-button").on("click", function () {
  $("#like_button_container").html("<%= render partial: 'shared/like', locals: { object: @likable } %>");
} );

我做错了什么?我试图将包含整个事物的div的类更改为id like_button_container,但它仍然不起作用。

有人可以解雇吗?

TIA

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery实现此目的。

这是html

<input type="button" class="like"  value="like">

<input type="button" class="unlike" style="display:none;" value="unlike">


<script>
$(function(){
$(".like").click(function(){

  $(this).hide()
$(".unlike").show()


});
$(".unlike").click(function(){

  $(this).hide()
$(".like").show()
//you can keep you logic here 
//you can make server side increment of the likes/unlike using jquery ajax post or
//any login you want to put

})

});

</script>