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

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

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

$(".box43z6r6QZ").click(function(){

    $(this).addClass("hG8KlY3Q");

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

});


HTML:

<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>
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Простой 1 комментарий
Решение пользователя Алексей Уколов К ответам на вопрос (3)
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Классическая потеря this. Правда, странно, что при этом нет ошибок в консоли, когда вы на window пытаетесь removeClass вызвать.

$(".box43z6r6QZ").click(function(){
   var $el = $(this);

    $el.addClass("hG8KlY3Q");

    setTimeout(function(){
        $el.removeClass("hG8KlY3Q");
    }, 1000);
});
Ответ написан
Комментировать