jQuery: когда запрашивать новую внешнюю высоту после изменения CSS?

Если я сделаю

var theHeight;
element.css('min-height', h);
theHeight = element.outerHeight();

в Chrome я получаю старую внешнюю высоту.

я должен сделать

var theHeight;
element.css('min-height', h);
setTimeout(function() {
  theHeight = element.outerHeight();
}, 1);

вместо этого (или, конечно, все, что производит аналогичный эффект), чтобы сделать outerHeight сообщить "правильную" высоту (которая, как я ожидаю, будет постоянной реальной высотой, которую мы можем увидеть после изменения min-height).

К несчастью, setTimeout это не вариант для меня. Что я могу использовать вместо этого? Он должен работать во всех основных браузерах (текущие версии).

1 ответ

setTimeout НЕ ваш лучший вариант.

То, что вы хотите сделать, это применить некоторые JavaScript после загрузки DOM (CSS применяется до document.ready).

Вы можете легко сделать с JQuery.

$(document).ready(function(){
  modifySomeDomElement();
});

документы здесь.

Надеюсь, это поможет,

Rhys

Другие вопросы по тегам