aprenoir
@aprenoir
программный архитектор

Как в JS выполнить вызов функции после выполнения innerHTML (обновления DOM)?

Есть div-контейнер модального окна, содержимое которого загружается через AJAX. Далее (после загрузки содержимого) определяется его высота в зависимости от которой выравнивается модальное окно.

document.getElementById('modal').innerHTML = ajax_html;
...
var height = document.getElementById('modal').clientHeight;


Функции выполняются одновременно из-за чего высота модального окна начинает определяться до загрузки в него содержимого (и обновления DOM-дерева).

Такой трюк позволяет решить проблему, но выглядит не слишком изящно в коде.

document.getElementById('modal').innerHTML = ajax_html;
...
setTimeout(function() {
    var height = document.getElementById('modal').clientHeight;
    ...
}, 20);


Каким образом можно вызвать вторую функцию (определение высоты) только после завершения DOM-операции (innerHTML) в первой?
  • Вопрос задан
  • 1102 просмотра
Пригласить эксперта
Ответы на вопрос 2
someart
@someart
Fullstack Laravel Developer
Смотрите промисы.

А что мешает в коллбеке при успешной загрузке все это сделать?
Ответ написан
@forgetable
Node/Flutter/C++
Тут уже подсказали, но вот пен, мне просто самому интересно стало.
https://codepen.io/forgetable/pen/xdYPRb
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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