По какой-то причине заполнитель для моих сортируемых элементов составляет около 10 пикселей. Все мои сортируемые предметы имеют разную высоту. Как я могу изменить высоту каждого заполнителя в соответствии с перемещаемым элементом?
jquery
jquery-ui
jquery-ui-sortable
Oshirowanen
источник
источник
Ответы:
Я обычно решаю эту проблему, привязывая обратный вызов, который устанавливает высоту заполнителя на высоту элемента, сортируемого для
start
события. Это простое решение, которое дает вам детальный контроль над тем, как вы хотите, чтобы ваш заполнитель отображался.См. Обновленный тестовый пример
источник
Вы пробовали установить
forcePlaceholderSize:true
свойство? Прочтите на странице документации jQuery UI Sortable .источник
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
на.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; }
(удалите высоту). Итак, @DarthJDG, вы правы!Ваши элементы
display: block
? Встроенные элементы могут привести к неправильному сохранению высоты в заполнителе. Например. этот jsFiddle, похоже, имеет проблему, аналогичную описанной вами. Добавлениеdisplay: block
в.portlet
класс исправляет это.источник
Вместо использования «ui.item.height ()» вы можете использовать «ui.helper [0] .scrollHeight» для получения стабильного результата при перетаскивании элемента из внешнего контейнера.
источник
Вы можете установить стиль для своего заполнителя в качестве опции для сортировки.
И просто придайте этому стилю высоту. Надеюсь, что это сработает.
источник
В моем случае я нашел решение, подобное JP Hellemons , в котором я устанавливаю высоту заполнителя (с ! Important ) на заказ, а также устанавливаю видимость с фоном, чтобы увидеть изменения для себя (также вы можете стилизовать свой заполнитель таким образом, как хотите ).
Это также работает с
display: inline-block;
источник