Значок не изменяется в ajax обработчике успеха - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь сделать функцию «добавить в мой список» в моем веб-приложении. Когда пользователь нажимает на значок, эта функция должна изменить цвет значка после отправки данных на сервер.

Он не выдает никаких ошибок, он успешно отправляет данные на сервер, но никогда не меняет значок. «console.log» внутри ajax обработчик успеха работает нормально, так в чем здесь проблема?

Заранее спасибо!

<div class="buttons">
  <button type="button" class="btn threeButtons" onclick="request_access(this)" id="{{ elem['isbn'].split()[0] }}">
     <i class="fas fa-plus"></i>
  </button>
</div>
function request_access($this){
    console.log("button clicked");
    var request_data = $this.id;
    var me = $(this);

    $.ajax({
        url: "/admin_add_books",
        type: "POST",
        data: request_data,
        success: function(){
            console.log("data: " + request_data)
            me.find('i').addClass('green');
            }
        })
}

1 Ответ

1 голос
/ 03 мая 2020

Если вы хотите выполнить sthg сразу после того, как данные отправлены, но ответ не отправлен с сервера, тогда вы должны выполнить sthg, например:

var response = $.ajax({
        url: "/admin_add_books",
        type: "POST",
        data: request_data
    });
// Change color just after data is sent
me.children("i").addClass("green");

response.done(function(result){
    // Server returned result
    me.children("i").addClass("green");
});

* Примечание: - успех в современной версии * не рекомендуется 1007 *. Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...