2

次のような 2 つの ajax 関数があります。

  $("body").on("click", ".follow", function() {
    var followingId = $(this).data("following");
    var followData = {"following_id" : followingId}
    $(this).addClass('disabled');
    $.ajax({
      url: "/users/follow/",
      type: "POST",
      data: followData,
      dataType: 'json',
      context: this,
      error: function () {},
      success : function (response) {
    $(this).addClass('unfollow');
    $(this).attr('data-unfollow', response.row_id);
    $(this).removeClass('follow');
      }
    });
  });

  $("body").on("click", ".unfollow", function() {
    var unfollowId = $(this).data("unfollow");
    var unfollowData = {"row_id" : unfollowId};
    $(this).addClass('disabled');
    $.ajax({
      url: "/users/unfollow/",
      type: "POST",
      data: unfollowData,
      context: this,
      error: function () {},
      success : function () {
        $(this).removeClass('disabled');
        $(this).addClass('follow');
        $(this).removeClass('unfollow');
      }
    });
  });

ユーザーを「フォロー」すると、応答として「row_id」(row_id n°1としましょう)を取得し、フォロー解除データとして設定します。ユーザーを「フォロー解除」すると、row_id n°1 が送信されます。それは正常です。

もう一度フォローしようとすると、応答として新しいrow_id(行n°2としましょう)を取得します。それも普通です。しかし、もう一度フォローを外したい場合は、row_id n°1 が送信されます。アップデートすればいいと思う

var unfollowId = $(this).data("unfollow"); 

(html では、値は row_id n°2 に変更されています) が、投稿すると、row_id n°1 が送信されます。

私はこれを達成できますか?

どうもありがとう !

4

1 に答える 1