Получение высоты div после установки его в авто в IE - PullRequest
1 голос
/ 11 июня 2010

Я пишу некоторый JavaScript, который изменяет размер некоторого контента. Для этого мне нужно знать размер div в моем контенте. Если у меня есть следующий HTML:

<div id="wrapper">
   ... other stuff ...
   <div id="inner" style="height:400px">Some text in here</div>
   ... other stuff ...
</div>

И следующий JavaScript:

$('#inner').height('auto');
var height = $("#wrapper").height();

В FireFox и Chrome переменная высоты увеличивается по мере того, как внутренний div расширяется, чтобы вместить весь текст. В IE это остается прежним. Я думаю, это не перерисовывает div сразу. Кто-нибудь знает, как получить новую правильную высоту в IE?

Приветствия

Ответы [ 2 ]

0 голосов
/ 11 июня 2010

Попробуйте это так:

$(function() {
  $('#inner').height('auto');
  var height = $("#wrapper").height();
});

Оборачивание в $(function() { }); заставляет его ждать, пока DOM отрендерится, прежде чем запускать скрипт.Вероятно, хорошей идеей будет поместить в эту функцию все, что требует доступа к DOM, сразу после рендеринга.

0 голосов
/ 11 июня 2010

Если проблема заключается в том, что элемент не перерисовывается сразу, вам нужно асинхронно измерить высоту - установите время ожидания 0 миллисекунд, чтобы измерить его и продолжить выполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...