【发布时间】:2013-09-14 01:21:50
【问题描述】:
我正在尝试实现一些非常接近“可排序小部件”的功能,但我无法使用它,因为其他东西不适用于预制小部件。 所以我试图用可拖放的元素重新创建它的功能:
$(".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' });
它工作正常,除了当我将它的元素移动到下一个位置时,可拖动助手不会停留在鼠标光标下方。 看看这个小提琴:
当您尝试对绿色框进行排序时,您会看到会发生什么。如何让助手保持在原位?
【问题讨论】:
-
你说你不想要“Sortable Widget”,但你决定使用“draggable”和“droppable”元素......为什么不使用“sortable”元素和一些那么自定义行为呢? jQuery UI : Sortable
-
是的,究竟是什么阻止了您使用可排序小部件?您是否还希望能够将这些框垂直移动到红框之外。你想让它们在鼠标上移时捕捉到空白区域吗?
标签: javascript jquery html css jquery-ui