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

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

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

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

$(".js-answer").click(function() {
    $(this).addClass("current");
    setTimeout(function() {
        $(this).removeClass("current");
    }, 1400);
});
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 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);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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