目标:我想拖放。我想要在细胞之间进行排序。但是,一旦填充了一个单元格,我就不希望能够将另一个项目放入/排序到单元格中。它应该是不受限制的。我已经能够通过使用以下方法成功禁用拖放:
$(this).droppable("option", "disabled", true);
除了我仍然可以从另一个单元格拖动/排序到单元格之外,我已经完成了所有工作。我注意到在执行此操作时正在调用Stop事件。如果我可以禁用'stop'就好了,就像我在上面的代码行中禁用了'drop'一样。
这是一个显示我的问题的小提琴: Fiddle Me This
答案 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();