Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как установить высоту дива взависимости от длины загружаемого списка? (https://javascript.ru/forum/jquery/36996-kak-ustanovit-vysotu-diva-vzavisimosti-ot-dliny-zagruzhaemogo-spiska.html)

Kvark 03.04.2013 15:49

[Решено] Как установить высоту дива взависимости от длины загружаемого списка?
 
Вопрос такой, есть див, который вылезает сбоку, в него я гружу свой список из файла, сам список может быть пустым, а может быть и 200 позиций, хочеться что бы длина блока соответсвенно менялась - как такое осуществить на jQuery?

tsigel 03.04.2013 17:51

Если список многострочный, то высота будет количество строк умножить на высоту строки)

Количество строк списка можно получить так:
var num = $('ul').find('li').length;

danik.js 03.04.2013 17:55

div{ height: auto }

Чем это не устраивает? Кстати это значение по умолчанию.

Kvark 03.04.2013 19:11

С авто не грузит вообще :(

попробую объяснить, может не достаточно ясно описал суть:

я проверяю файл даных и загружаю его, если даные обновились, а вот как "проиницилизировать" высоту для вновь загруженых елементов - незнаю :help:

вот как у меня это выглядит: http://test.tmp.kikilis.serveriai.lt/jqtest/

вот так прописано сейчас
<div id="fDeviceList" style="height: 150px">
   Тут загружаеться список.			
</div>

неумею соcчтитать загруженые элементы и менять высоту в зависимости от их количества :(

danik.js 03.04.2013 19:31

Сосчтиать тебя уже научили, не ври.

Kvark 03.04.2013 19:34

:agree: да, сосчитал тока что уже (переделал свой список чтоб был html) cписком и применил подсказку :) но как то странно он считает вместе с тегами...
ну на три поделю не беда, а как теперь правильно поменять значение высоты?
попробовал добавить такое:
$('#fDeviceList').css({'height':'500px'});

вот только за границу вылазит...

tsigel 04.04.2013 07:13

Допустим в переменной num у нас вычисленное значение высоты, тогда:
$('#fDeviceList').css('height', num);

Возможно
Цитата:

Сообщение от Kvark
но как то странно он считает вместе с тегами...

это происходит от того, что find ищет не только ближайших детей, но вообще все, что подходит (т.е. $('#fDeviceList').find('div') найдет ВСЕ дивы в #fDeviceList).
Ну кстати не надо забывать прибавить отступы (margin и padding).

danik.js 04.04.2013 07:44

$('#fDeviceList').find('> div')
//или
$('#fDeviceList').children('div')

Kvark 04.04.2013 11:50

c математикой разобрался более мение - спасибо, но что то высота не меняеться... вот как получаеться почемуто: http://test.tmp.kikilis.serveriai.lt/jqtest/

tsigel 04.04.2013 12:45

И что не так?
Попробуйте получше сформулировать вопрос. Разбейте его по пунктам и хорошо распишите. Возможно в ходе этого занятия вы сами наткнетесь на ответ.

Пока что я вижу что у fDeviceList постоянная высота в 500, как вы и писали в коде. Кстати, чтобы вам активнее помогали сделайте короткий тестовый пример, отображающий суть проблемы и который можно запустить прямо тут (нет никакого желания лазить в ваши скрипты и искать в них что-то).

Тестовый пример выглядит примерно так:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<ul>
  <li></li>
  <li></li>
  <li></li>
</ul>
<script>
  var num = $('ul').find('li').length;
  alert(num);
</script>


Часовой пояс GMT +3, время: 00:16.