我对 JQuery 有一些问题 - Draggable/Droppable。我一直在谷歌搜索,也搜索了这个论坛。问题在一定程度上得到了解决,但我遇到的情况仍然会导致不需要的结果。
我在这个线程中提出了一些答案:jQuery UI - Droppable only accept one draggable。
所以我的任务基本上是建立一个拖放系统,其中只有一个Draggable 项目可以放在一个 Droppable 项目上。好的,首先,如果 Draggables 已经放出来了,你需要设置它们的 Droppables 是忙的。我为此使用了一个创建函数。
这是一些代码:
$('.droppable').droppable
({
hoverClass: "ui-state-active",
drop: function (event, ui) {
$(this).droppable('option', 'accept', ui.draggable);
},
out: function (event, ui) {
$(this).droppable('option', 'accept', '.draggable');
},
create: function (event, ui) {
if ($(this).find('.draggable').length == 1) {
$(this).droppable('option', 'accept', $(this).find('.draggable'));
}
},
});
$('.draggable').draggable
({
revert: 'invalid',
cursor: 'move',
zIndex: 10000
});
我的问题:如果用户拖动一个项目并且未能将其放在接受的 Droppable 上,它会恢复。这意味着它没有被删除并且 drop: 函数永远不会运行。这意味着这个 Droppable 现在接受可拖动类的每个项目,即使那里有一个项目(恢复的项目)。对此可以做些什么?我希望你明白我在这里的意思。
我希望我现在已经完成了所有事情,如果没有,请告诉我。
谢谢!