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();