Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery,防止放入单元格后可排序和拖动_Jquery_Jquery Ui_Draggable_Jquery Ui Sortable - Fatal编程技术网

jQuery,防止放入单元格后可排序和拖动

jQuery,防止放入单元格后可排序和拖动,jquery,jquery-ui,draggable,jquery-ui-sortable,Jquery,Jquery Ui,Draggable,Jquery Ui Sortable,目标:我确实想拖放。我确实想在单元格之间进行排序。但是,一旦一个单元格被填满,我就不希望能够将另一个项目放入该单元格中/对其进行排序。应该禁止进入。我已经能够通过以下方法成功禁用拖放功能: $(this).droppable("option", "disabled", true); 我所有的东西都在工作,除了我仍然可以从另一个单元格拖动/排序到单元格中。我注意到当我这样做时,停止事件被调用。如果我能像禁用上面代码行中的“drop”一样禁用“stop”,那就太好了 这是一把小提琴,显示了我的问题

目标:我确实想拖放。我确实想在单元格之间进行排序。但是,一旦一个单元格被填满,我就不希望能够将另一个项目放入该单元格中/对其进行排序。应该禁止进入。我已经能够通过以下方法成功禁用拖放功能:

$(this).droppable("option", "disabled", true);
我所有的东西都在工作,除了我仍然可以从另一个单元格拖动/排序到单元格中。我注意到当我这样做时,停止事件被调用。如果我能像禁用上面代码行中的“drop”一样禁用“stop”,那就太好了

这是一把小提琴,显示了我的问题:
以下是我最后不得不做的事情(请参阅“接收”事件)。似乎有一种更干净的方法,但这是可行的:

    $(".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();