我有一个可排序的垂直单列列表。我需要的是:
1)当用户拖动列表之外的元素时,打开元素所在的原始占位符。我需要它来防止掉落到列表之外。有可能吗?
2)是否可以添加或更改公差选项?当拖动元素的顶部边框与列表元素的底部边框重叠时,我需要设置重新排序(对于垂直列表)。我管理得到这个,而dragginf向上,但当你拖动下来排序鼠标重叠工作。
$('#sortable').sortable({
sort: function (event, ui) {
var list = $(this),
w = ui.helper.outerWidth(),
h = ui.helper.outerHeight();
list.children().each(function () {
if ($(this).hasClass('ui-sortable-helper') || $(this).hasClass('ui-sortable-placeholder')) {
return true;
}
var currElementHeight = $(this).outerHeight(),
overlap = $(this).position().top + currElementHeight - ui.position.top,
placeBefore = ui.position.top > $(this).position().top;
if (overlap > 0 && overlap < currElementHeight) {
if (placeBefore)
$('.ui-sortable-placeholder', list).insertBefore($(this));
else
$('.ui-sortable-placeholder', list).insertAfter($(this));
return false;
}
if ($(this).position().left + $(this).outerWidth() < ui.position.left) {
console.log('out');
//ui.item.parent().sortable('cancel');
}
});
},
});
以下是我在jsfiddle
上的实验