Javascript addClass или removeClass не работает в подклассе после вызова ajax - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть ajax-скрипт, который вставляет значение, если его нет в базе данных, и удаляет значение, если оно уже существует, и возвращает 1 или 0 соответственно, в зависимости от возвращаемого значения, которое он добавляет или удаляет класс в существующемКнопка.

Я пытался с помощью find() получить значение подкласса, но он все еще не работает.

<form method="post" class="wish" action="process.php">
  <input type='hidden' id='value' name='value' value='1'>
  <button type="submit" class="card-fox list active" >fan</button>
</form>

Эта строка активна. Я хочу добавить ее, если она нетуда и удалите, если он там есть.

ниже находится ajax:

$(document).ready(function (e) {
  $(".wish").on('submit', (function (e) {
    e.preventDefault();
    $.ajax({
      url: "process.php",
      type: "POST",
      data: new FormData(this),
      contentType: false,
      cache: false,
      processData: false,
      success: function (data) {
        if (data == 1) {
          $(".list", this).addClass("active");
        }
        if (data == 2) {
          $(".list", this).removeClass("active");
        }
      },
      error: function (e) {}
    });
  }));
});

проблема в том, что, хотя скрипт ajax выполняется и все остальное работает, активный класс не является нидобавление или удаление.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Использование:

$(".wish").find('button').addClass("active");
$(".wish").find('button').removeClass("active");

Или:

//when form is submit, make a copy of this
let self = this;

//send ajax
//in success ajax
$(self).find('button').addClass("active");

Привет!

0 голосов
/ 04 ноября 2019

* * * * * * * * * * * * * * * * * * * * * * * * * * * * this В вашей функции успеха Ajax не форма.

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