@stasboiko

Почему обработка стилей в js выполняется в самом конце?

Имеем кнопку:
<button id="save-button"></button>

И обработчик:
$('#save-button').css('display', 'none');
for (i = 0; i < 9999: i++) {\
console.log(i);
}


Если нажать на кнопку, то сначала выполнится цикл и только после выполнения цикла кнопка скроется (display: none).
Вопрос.
Как сделать так, чтоб код выполнялся в порядке написания.
Т.е. в данном примере, сперва должна скрыться кнопка, а затем уже выполняться цикл.
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Tanyel
$('#save-button').animate({'display':'none'},0, function(){
for (i = 0; i < 9999: i++) {
console.log(i);
}
});
Ответ написан
r0n1x
@r0n1x
html, css, js
Убрать дефис из названия ИДа
<button id="saveButton"></button>

Можно написать вот так. Выполняется все ок, просто браузер задумывается.
saveButton.onclick = () => {
      saveButton.hidden = true;
        for (i = 0; i < 9999; i++) {
          console.log(i);
        }
    }


или с задержкой, так выглядит лучше =)

saveButton.onclick = () => {
      saveButton.hidden = true;
      setTimeout(function() {
        for (i = 0; i < 9999; i++) {
          console.log(i);
        }
      }, 100)
    }


пы.сы. jQuery в 2к17... не надо так... =(
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы