JQuery Высота Hidden TR возвращается 0 - PullRequest
2 голосов
/ 09 октября 2009

Я пытаюсь вычислить высоту TR, для которого задано отображение: нет, однако метод расширения высоты jquery возвращает 0 каждый раз. Конечно, когда он виден, он возвращает правильное значение. Исходя из моего понимания и прошлого опыта, я не знаю, почему это происходит, потому что не должно ли оно вернуть высоту, даже если она скрыта? Во всяком случае, любая помощь будет оценена!

спасибо!

Ответы [ 2 ]

4 голосов
/ 09 октября 2009

Нет, элементы display:none не занимают места в пространстве документа, поэтому не имеют размеров.

Ожидается, что свойства, вычисленные из прямоугольного пространства элемента (например, offsetWidth или offsetHeight), вернут 0.

Ссылка: Модель форматирования CSS1

Редактировать : получить размеры скрытых элементов сложно. В зависимости от вашей ситуации этот ответ может помочь.

1 голос
/ 09 октября 2009

Ротатин прав. Что я делал в прошлом, когда мне действительно нужно было знать, какова высота элемента, так это использовать jquery для получения высоты, сохранять ее в объекте данных элемента и затем скрывать элемент после загрузки страницы. ,

Это будет неприглядно для страницы с большим количеством элементов (может показаться, что она запаздывает, потому что вся страница должна будет загружаться, прежде чем скрывать элементы).

Но, если вам нужна эта техника, она может быть выполнена следующим образом:

$('.should_be_hidden').each(function() {
    $(this).data('height',$(this).height()).hide();
});

Часто бывает полезно, если вам нужно оживить объект.

Чтобы получить высоту, когда это необходимо ... вы можете просто сделать:

var element_height = $('#some_element').data('height');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...