jQuery ui-sortable打开原始占位符在列表之外的拖动

时间:2015-04-22 18:49:12

标签: jquery-ui jquery-ui-sortable

我有一个可排序的垂直单列列表。我需要的是:

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

上的实验

0 个答案:

没有答案