Мой сценарий динамически создает внутри <ul>
ширину *1001* с плавающей точкой: это paginator.После этого скрипт измеряет ширину всех <li>
с и суммирует их.
Проблема заключается в том, что после введения узлов в документ браузер обновляет DOM и применяет стили CSS, что занимает некоторое время.Это отрицательно сказывается на моем сценарии: когда эти операции не завершены до того, как я измерим ширину, мой сценарий получает неверное значение.Если я выполню измерение за секунду - все в порядке.
Я ищу способ определения момента, когда <ul>
полностью прорисован, применены стили и стабилизирована ширина.Или, по крайней мере, способ обнаружить изменения каждого измерения.Конечно, я могу использовать setTimeout(..., 100)
, но это уродливо, и я предполагаю - не решение вообще.
Если есть способ обнаружить стабилизацию ширины - я бы сделал измерение сразу после этого, чтобы получить правильные значения.
HTML-код, сгенерированный DOM
<div>
<ul>
<li><a href="...">1</a></li>
<li><a href="...">2</a></li>
....
</ul>
</div>
PS Зачем мне это нужно. Слева * <li>
элементы моего пагинатора имеют тенденцию кперейти к следующей строке, когда <ul>
пытается стать шире, чем сама страница.Несмотря на то, что большинство <li>
невидимы из-за ограничения ширины родительского <div>
:
div { width: 500px; overflow: hidden; }
div ul { width: 100%; white-space: nowrap; }
div ul li { display: block; float: left; }
они все равно будут уменьшаться, если я не укажу фактическую суммарную ширину <ul>
с помощью скрипта.