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

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

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

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

$(".js-answer").click(function() {
    $(this).addClass("current");
    setTimeout(function() {
        $(this).removeClass("current");
    }, 1400);
});
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 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);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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