1

我对 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 现在接受可拖动类的每个项目,即使那里有一个项目(恢复的项目)。对此可以做些什么?我希望你明白我在这里的意思。

我希望我现在已经完成了所有事情,如果没有,请告诉我。

谢谢!

4

0 回答 0