jQuery,防止可分类和可拖动后放入单元格

时间:2014-01-22 20:52:21

标签: jquery jquery-ui draggable jquery-ui-sortable

目标:我想拖放。我想要在细胞之间进行排序。但是,一旦填充了一个单元格,我就不希望能够将另一个项目放入/排序到单元格中。它应该是不受限制的。我已经能够通过使用以下方法成功禁用拖放:

$(this).droppable("option", "disabled", true);

除了我仍然可以从另一个单元格拖动/排序到单元格之外,我已经完成了所有工作。我注意到在执行此操作时正在调用Stop事件。如果我可以禁用'stop'就好了,就像我在上面的代码行中禁用了'drop'一样。

这是一个显示我的问题的小提琴: Fiddle Me This

1 个答案:

答案 0 :(得分:0)

这是我最终必须做的事情(参见'接收'事件)。似乎可能有一种更清洁的方式,但这有效:

    $(".droppedFields").sortable({
        cancel: null, // Cancel the default events on the controls
        connectWith: ".droppedFields",
        stop: function (event, ui) {
            makeUnDroppable();
        },
        receive: function (event, ui) {
            var source = ui.item;
            var target = $(this);

            var newCombinedTargetLength = target.text().length;
            var sourceLength = source.text().length;

            // cancel the sort if something is already there
            if (newCombinedTargetLength - sourceLength > 0) {
                $(ui.sender).sortable('cancel');
            }            
        }
    }).disableSelection();