@alst161

Не применяется css во время preventDefault. Как решить?

loginButton.addEventListener('click', function(e) {
    e.preventDefault();
    LoginModalStep1.getElementsByClassName('form_loading')[0].classList.remove('modal-block-inactive');
    var xhr = new XMLHttpRequest();
     ...отправка...
    LoginModalStep1.getElementsByClassName('form_loading')[0].classList.add('modal-block-inactive');
});

В такой ситуации класс добавляется. Отправка занимает например 3 сек (поставил задержку в отладчике хрома). Но сами стили не применяются. Только когда функция полностью отработает стили применяются. Т.е. если удалить строчку ( LoginModalStep1.getElementsByClassName('form_loading')[0].classList.remove('modal-block-inactive')) то до отправки добавится класс modal-block-inactive но его стиль применится после выполнения функции.

Как это обойти?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега CSS
{PHP, MySql, HTML, JS, CSS} developer
alst161, первое и самое тупое что приходит в голову - поставить задержку исполнения аякс запроса на пол секунды и проверить "а был ли мальчик?", в смысле проблема вообще в аяксе? И второе - проверить что то же самое происходит с прямой инъекцией цсс свойств, а так же проверить работу с другим классом, возможно класс который вы применяете "кривой".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект