Вопрос по html, jquery, javascript – jquery .ready и высота элемента

13

Может показаться тривиальным вопросом, но я столкнулся с проблемой при использовании jQuery. Когда я пытаюсь получить высоту элемента в .ready, мне всегда дают ноль.

$(function() {
  $('#my-elem').height() // Always gives me zero.
});

Если я добавлю код с задержкой с помощью setTimeout () вокруг проверки высоты (скажем, 0,5 с), тогда высота будет возвращена мне правильно. Я предполагаю, что это потому, что у стилей еще не было возможности быть примененными?

Единственное решение, которое я нашел для этой проблемы, состоит в том, чтобы использовать интервал для опроса высоты элемента, пока он не станет ненулевым, но это кажется мне излишним. Есть ли способ лучше?

Попробуй поставить скрипт внизу страницы Ajay Beniwal
Элемент скрыт и затем показан? Попробуй с$(window).load() событие, которое происходит немного позже, чем docready. elclanrs
Нет, это не поможет; фактически это означает, что сценарий запускается до события DOMReady (document.ready). Salman A
# my-elem это div, span, img или что user1432124
Покажите нам HTML, а также скрипку, если это возможно. Starx

Ваш Ответ

1   ответ
22

document.ready событие сигнализирует, что HTML DOM готов для доступа через Javascript, ноthat doesn't mean that the elements have already rendered.

Фактически, это весь шебанг позадиreadyэто средство для вас, чтобы начать манипулировать HTML DOM вашего документаwithout having to wait for the page to finish loading, Можно предположить, что приdocument.ready, ваши элементы еще не отображаются на странице.

Теперь это сопровождается предупреждением: если элементы еще не отрисованы, как браузер / Javascript могут узнать, какова его разрешающая высота?.height() может дать ноль вdocument.ready из-за этого. Вероятно, лучше подождать, покаload вместоready когда дело доходит до вытягивания размеров коробки из макета.

Я говорил из опыта, но позвольте мне перефразировать это, чтобы быть более общим.
Я думаюmost of the time (if not every time) следует читать какon rare occasions

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