我有非常简单的 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-method
todelete
并添加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
,现在当我单击它时,即使更改为删除,-
它仍会运行操作。知道为什么吗?create
data-method