@ymfront

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

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

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

$(".js-answer").click(function() {
    $(this).addClass("current");
    setTimeout(function() {
        $(this).removeClass("current");
    }, 1400);
});
  • Вопрос задан
  • 64 просмотра
Решения вопроса 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);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы