1

我有非常简单的 ajax 投票计数器,带有 +/- 来添加/删除投票。

<div class="points pull-left">
  <a rel="nofollow" data-remote="true" data-method="post" href="/entry_votes?id=135">+</a>
  <span id="entry135">2</span>
</div>

当我单击+它为 entry_votes 视图运行 js 时,更改 span 值(在本例中为 3),更改+-data-methodtodelete并添加class="unvote"

它适用于以下代码:

创建.js

$("#entry<%=@entry.id%>").html("<%=@entry.points_count%>")
$("#entry<%=@entry.id%>").siblings().replaceWith('<%= link_to "-",entry_vote_path(id: @entry.id),method: :delete, remote: true, class: "unvote"%>')

销毁.js

$("#entry<%=@entry.id%>").html("<%=@entry.points_count%>");
$("#entry<%=@entry.id%>").siblings().replaceWith('<%=link_to "+",entry_votes_path(id: @entry.id),method: :post,remote: true %>');

我不想replaceWith,但只是toggle data-method,+/-和class =“”/“unvoted”,所以我写了这样的东西:

创建.js

$("#entry<%=@entry.id%>").html("<%=@entry.points_count%>")
$("#entry<%=@entry.id%>").siblings().attr("data-method","delete").addClass("unvote").html("-")

当我第一次单击它时它可以正常工作,一切都像我想要的那样改变。例如+2更改为-3,现在当我单击它时,即使更改为删除,-它仍会运行操作。知道为什么吗?createdata-method

4

0 回答 0