Почему не удаляется класс по setTimeout?

Рейтинг: 0Ответов: 1Опубликовано: 24.07.2023

По клику на элемент нужно добавить класс, а через секунду удалить его. Добавление класса работает, а вот удаление не работает. В консоли нет никаких ошибок. В чем может быть проблема? Если в setTimeout добавить alert("text"), то alert выскакивает.

$(".box43z6r6QZ").click(function() {
  $(this).addClass("hG8KlY3Q");
  setTimeout(function() {
    $(this).removeClass("hG8KlY3Q");
  }, 1000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="box32TgUoAy">
  <span class="box43z6r6QZ 43z6r6QZ__tl">tl</span>
  <span class="box43z6r6QZ 43z6r6QZ__tr">tr</span>
  <span class="box43z6r6QZ 43z6r6QZ__bl">bl</span>
  <span class="box43z6r6QZ 43z6r6QZ__br">br</span>
</div>

Ответы

▲ -1Принят

$(".box43z6r6QZ").click(function(){
    let el = $(this);
    el.addClass("hG8KlY3Q");

    setTimeout(function(){
        el.removeClass("hG8KlY3Q");
    }, 1000);

});