@kirill-93

Почему код не работает без setTimeout?

Беру контент и кладу его в модальное окно, после этого устанавливаю правило для элемента внутри окна.
#
$('[data-bq-modal-window]').html(content);
    var maxHeight = $(window).height() - 220;

    setTimeout(function() {
        $('[data-bq-modal-window]').find('.post-content').css({'max-height' : maxHeight + 'px', 'overflow' : 'auto'});
    }, 0);

Этот код работает только внутри setTimeout, причем достаточно выставить таймаут 0, что по сути делает его моментальным.
Без таймаута $('[data-bq-modal-window]').find('.post-content').length возвращает 0.
Почему так происходит?
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
Видимо, на момент выполнения скрипта элемент .post-content еще не построен в DOM, использование "таймеров" всегда дает задержку, ведь нужно время чтобы выполнилась функция, создающая таймер.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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