2010-01-03 5 views
0

Я новичок в JQuery и стараюсь следовать примеру на JqueryUI Display Grid и помещать его в div.Как позволить div расти на основе высоты сортировки сетки Jquery?

Так что код в основном выглядит следующим образом:

JS код:

$('#demoList').sortable(); 
$('#demoList').disableSelection(); 
var contentHeight = $('#demoContent').height() + 200; 
$('#demoContent').animate({height: contentHeight}); 

HTML код:

<div id="demoContent"> 
     <ul id="demoList"> 
      <!-- <li> items generated based on the items from MySql --> 
      <li class="ui-state-default"><img src="1.jpg" width="100px" height="100px"></li> 
      <li class="ui-state-default"><img src="2.jpg" width="100px" height="100px"></li> 
      <li class="ui-state-default"><img src="3.jpg" width="100px" height="100px"></li> 
      <li class="ui-state-default"><img src="4.jpg" width="100px" height="100px"></li> 
      <li class="ui-state-default"><img src="5.jpg" width="100px" height="100px"></li> 
      <!-- There could be more than 5 images... --> 
     </ul> 
</div> 

В настоящее время я могу только добавить фиксированный 200px к моему contentHeight, но я нужно, чтобы он был более указан на основе строк элементов, которые я мог бы создать из базы данных. Мой вопрос в том, как можно позволить demoContent «вырастить» свою высоту в зависимости от количества строк изображений, которые могут быть (скажем, если каждая строка может содержать до 5 изображений)?

спасибо.

ответ

0

Если вы правильно поняли, это не имеет никакого отношения к javascript :) вам просто нужно очистить и удалить этот материал height().

<div id="demoContent"> 
      <ul id="demoList"> 
        <!-- items --> 
      </ul> 
      <div style="clear: both;"> </div> 
    </div> 
+0

антпау: Да, вы исправили мою проблему. Благодарю. –

0

Вы должны вызвать slideDown анимации, как это:

$('#demoContent').slideDown(); 

Если вы хотите, чтобы получить высоту сетки, вызовите $('#demoList').height().

+0

SLaks: Я изменил анимацию slideDown и попытался добавить $ ('# demoList'). Height(); но возвращаемое значение для этой высоты равно 0px. Я что-то упускаю? –

+0

да, у него нет высоты, потому что весь элемент плавает – antpaw

Смежные вопросы