jQuery UI может делать некоторые предположения, но проблема, в частности, с заполнителем, заключается в том, что его стиль установлен для относительного, а не абсолютного позиционирования.Поскольку нет других относительно позиционированных элементов, заполнитель заканчивается в начальной позиции.
Чтобы расположить заполнитель в месте, где находится движущийся элемент, вам нужно сделать две вещи:
- Дайте заполнителю свой собственный класс и
- Установите позицию заполнителя в зависимости от элемента, для которого он стоит.
Например, для его класса и стиля:
.my-placeholder {
background:red;
height: 1.5em;
line-height: 1.2em;
position: absolute;
top: 20%;
width: 10%;
}
Теперь все, что остается, - это установить его «левое» положение в соответствии с элементом, который он заменяет.Это можно сделать, установив обработчик события «start», чтобы сделать это, когда начинается перетаскивание.
$("#sortable").sortable({
placeholder: "my-placeholder",
start: function(event, ui) {
$(".my-placeholder").css("left", ui.originalPosition.left);
},
});