Задать вопрос
@ymfront

Как на jQuery удалить динамически созданный класс по таймеру?

При клике по элементу добавляю ему класс. Также при прохождении 1,4 сек. класс нужно удалить.

Делаю так, но класс не удаляется:

$(".js-answer").click(function() {
    $(this).addClass("current");
    setTimeout(function() {
        $(this).removeClass("current");
    }, 1400);
});
  • Вопрос задан
  • 79 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
Get-Web
@Get-Web Куратор тега JavaScript
Front-End Developer
У function свой this, поэтому передаем либо переменную, которая ссылается на нужный элемент:
$(".js-answer").click(function() {
    let __this =  $(this);
    __this.addClass("current");
    setTimeout(function() {
        __this.removeClass("current");
    }, 1400);
});

Либо используем стрелочную функцию, которая не имеет своего this
$(".js-answer").click(function() {
    $(this).addClass("current");
    setTimeout(() => {
        $(this).removeClass("current");
    }, 1400);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы