Помогите разобраться с setTimeout

Сергей Дмитриев

Приветствую всех, кто читает эти строки сейчас=). Решил сделать всплывающую форму входа на сайт и столкнулся с проблемой. Всплывающее окно по-умолчанию скрыто, с помощью js ей добавляется класс, который ее показывает. Если пользователь ничего не ввел, то окошко будет трястись...но только один раз, потому что это делает путем добавления класса, для которого прописана соответствующая анимация. Я хочу, чтобы если пользователь нажал кнопку повторно, не отправив ничего в поля ввода, окно снова тряслось, для чего решил, что нужно через некоторое время (например, 2 с) удалить класс, чтобы при нажатии он добавился вновь, и снова сработала анимация. Для чего использовал:

setTimeout(function() {
popup.classList.remove('modal-error');
}, 2000);

Все бы хорошо, класс удаляется, но окно через 2 с также пропадает и появляется вновь.
Уважаемые знатоки, внимание, вопрос!
Почему это происходит и как предотвратить повторное исчезание и появление этого окна?

Ссылка на сайт: [https://safe-mode.github.io/bike-gang/](http://)
Картинка: [http://hostingkartinok.com/show-image.php?id=0855069403730e43b88ea97911cac593](http://)

Заранее благодарствую!

1 чел.