我正在尝试实现与“可排序小部件”非常接近的功能,但由于其他不适用于预制小部件的东西,我无法使用它。所以我试图用可拖放的元素重新创建它的功能:
$(".Element").draggable({
helper: 'original',
drag: function(event, ui) {
ElementWidth = $(this).outerWidth(true);
if($(this).prev().length){
LeftElementWidth = $(this).prev().outerWidth(true);
LeftElementLeftOffset = $(this).prev().offset().left;
if(parseFloat(ui.offset.left+(ElementWidth/2)) < parseFloat(LeftElementLeftOffset+(LeftElementWidth/2))){
$(this).prev().before($(this));
}
}
if($(this).next().length){
RightElementWidth = $(this).next().outerWidth(true);
RightElementLeftOffset = $(this).next().offset().left;
if(parseFloat(ui.offset.left+(ElementWidth/2)) > parseFloat(RightElementLeftOffset+(RightElementWidth/2))){
$(this).next().after($(this));
}
}
}
});
$("#Container").droppable({ accept: '.Element' });
它工作正常,除了当我将它的元素移动到下一个位置时,可拖动助手不会停留在鼠标光标下方。看看这个小提琴:
当您尝试对绿色框进行排序时,您会看到会发生什么。我怎样才能让助手保持在原位?