2

我正在尝试使可拖动的多个项目只能拖动到 1 个可放置项。如果放在可放置对象之外,则还原。我的大部分代码都有效,除了一个错误:

用户将项目拖到可放置项中。然后拖出(执行 out 函数),然后他未能放入 droppable (还原发生,拖动回到其先前的 droppable)。实际发生的是,droppable 现在可以接受任何拖动(因为拖动离开,执行结束),而拖动由于恢复而从未真正离开。

我已经尝试解决这个问题几个小时并通过了 API。我什至尝试使用回调函数进行还原,但是由于对如何检索可拖动的可放置对象感到困惑,我被卡住了。

 //revert if not dragged to a draggable.
 $( "[id|=drag]" ).draggable({ revert: 'invalid', revertDuration: 350 }); 

$( ".dropZone" ).droppable({

    drop: function(ev,ui) {
      $(this).droppable('option', 'accept', ui.draggable); //only accept the current drag.
    },
    out: function(ev, ui) {
      $(this).droppable('option', 'accept', '[id|=drag]');//now you can accept any drag.
     }
});

jsfiddle:http: //jsfiddle.net/tG6cj/

4

0 回答 0