2011-01-27 3 views
1

У меня есть контейнер div, внутри которого я хочу динамически создавать другие блоки (div) с помощью jquery. Каждый новый ящик должен быть помещен в левую часть других открытых ящиков. Все работает отлично, за исключением того, что ящики открываются в правую сторону других открытых ящиков. Вот как я это сделал до сих пор:динамически открытые коробки справа налево из контейнера

#container{ 

    overflow-y:hidden; 
    white-space:nowrap; 
    border:none; 
    position:relative; 
    z-index:998; 
    overflow:hidden; 
    float:left; 
    display:table-row; 
    vertical-align:bottom; 
} 
.box{ 

    z-index:997; 
    vertical-align:bottom; 
    width: 225px; 
    position:static; 
    border:1px solid #666666; 
    /*next lines are added to force boxes go to bottom when minimized-cross browser solytion*/ 
    display:-moz-inline-stack; 
    display:inline-block; 
    zoom:1; 
    *display:inline; 
} 

любые предложения?

ответ

3

Вместо добавления их (я предполагаю, что вы) использовать prepend, чтобы добавить новый элемент в начале ..

var newEl = $('<div>',{class:'box', text:'whatever..'}); 
$('#container').prepend(newEl); 

демо на http://www.jsfiddle.net/gaby/acnNe/

+0

спасибо за ответ! Я застрял, пытаясь сделать это через css, хотя это было так просто ... – CrisDeBlonde

0

Задумывались ли Вы о плавающих прямо:

#container{ 
float: right 
} 
+0

что сделал работу, пока я не добавил «минимизировать "для полей. Затем, если контейнер был перемещен вправо, свернутые коробки оставались сверху контейнера. Спасибо, что ответили! – CrisDeBlonde

2

Это, вероятно, самый простой в использовании .prepend():

$('#container').prepend('<div class=".box">Some content</div>'); 

Это будет вставить новую коробку в качестве первого ребенка контейнера - перед любыми другими коробками в контейнере.

+0

спасибо за ответ :) Это сработало - я думал, что смогу сделать это через css и даже не подумал о том, чтобы искать в моем коде jQuery – CrisDeBlonde

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