ajax: success and ajax: kompletne wywołanie zwrotne nie działa podczas używania UJS w Railsach

Mam link, który po kliknięciu wywoła wywołanie ajax, a następnie zastąp to łącze innym łączem, mówi na przykład, że oryginalny link to „dodaj przyjaciela”, a gdy kliknę ten link, wyśle ​​żądanie ajax do akcji add_friend jeśli przyjaciel zostanie dodany, powyższy link zostanie zastąpiony innym linkiem „anuluj żądanie”, do tego używam ujs:

$("#link_for_friend").html("<%= escape_javascript(render('users/cancel_link')) %>")

kiedy próbuję dodać wywołanie zwrotne (: sukces i: kompletne), nie działa, próbowałem z: beforeSend jak poniżej działa:

$(document).ready ->
  $("#my_link").on "ajax:beforeSend", ->
    alert("hello")

istnieje rozwiązanie zapewniające sukces i pełne wywołanie zwrotne?

uwaga: moim pomysłem jest pokazanie loader.gif, gdy wyzwalany jest ajaxStart, a następnie ukrywanie go, gdy ajax: wywołanie pełne wywołane jest przynajmniej, także jeśli jest jakiś błąd chcę go pokazać, gdy ajax: błąd jest wyzwalany

Aktualizacja

Próbowałem rozwiązać ten problem, przenosząc kod wewnątrz action.js.erb do pliku js w następujący sposób:

  $(document).ready ->
  $(document).on("ajax:success", "a.invitation-box", ->
    $("#link_for_friend").html("<%= escape_javascript(render('users/cancel_link')) %>")
  ).on "ajax:error", "a.invitation-box", ->
    alert "error"

ale w ten sposób nie można umieścić renderowania ('users / cancel_link') wewnątrz pliku JS

questionAnswers(3)

yourAnswerToTheQuestion