我有非常简单的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,更改范围值(在本例中为3),将+
更改为-
,data-method
更改为{{ 1}}并添加delete
适用于以下代码:
create.js
class="unvote"
destroy.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"%>')
我不想替换,但两者都只是切换$("#entry<%=@entry.id%>").html("<%=@entry.points_count%>");
$("#entry<%=@entry.id%>").siblings().replaceWith('<%=link_to "+",entry_votes_path(id: @entry.id),method: :post,remote: true %>');
,+ / - 和class =“”/“unvoted”,所以我写了这样的东西:
create.js
data-method
当我第一次点击它时它工作正常,改变就像我想要的那样。例如,$("#entry<%=@entry.id%>").html("<%=@entry.points_count%>")
$("#entry<%=@entry.id%>").siblings().attr("data-method","delete").addClass("unvote").html("-")
更改为+2
,现在当我点击-3
时,即使-
更改为删除,它仍会运行create
操作。知道为什么吗?