最近在做的一个小应用,因为要实现多个页面中的关注和取消关注功能,用 ujs 的话就会很难搞,在参考了 @Rei 的文章之后,改用客户端 Ajax 来做,果然很方便,不过现在有一个问题,就是 jQuery 绑定的事件在 ajax 发送完成之后不会更新,导致关注或者取消关注的按钮只能点一次,再点的话,就会报错。
只能跪求指点了。
相关的 JS 代码是下面这部分:
$(document).ready ->
$(".follow").on "click", ->
user_id = $(this).attr("data-user-id")
_this = $(this)
$.ajax
type: "POST"
url: "/relationships"
dataType: "json"
data:
user_id: user_id
success: (data) ->
_this.text("取消关注").attr("data-relationship-id", data["relationship-id"]).removeClass("follow").addClass("unfollow")
$(".unfollow").on "click", ->
user_id = $(this).attr("data-user-id")
_relationship_id = $(this).attr("data-relationship-id")
_this = $(this)
$.ajax
type: "POST"
url: "/relationships/" + _relationship_id
dataType: "json"
data:
user_id: user_id
_method: "delete"
success: ->
_this.text("关注").removeAttr("data-relationship-id").removeClass("unfollow").addClass("follow")