@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, первое и самое тупое что приходит в голову - поставить задержку исполнения аякс запроса на пол секунды и проверить "а был ли мальчик?", в смысле проблема вообще в аяксе? И второе - проверить что то же самое происходит с прямой инъекцией цсс свойств, а так же проверить работу с другим классом, возможно класс который вы применяете "кривой".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы