JQuery UI Draggable&Droppable“Revert”和“Out”冲突

我试图使它可以拖动多个可拖动的项目只能拖放到1个droppable。 如果丢弃在droppable之外然后恢复。 除了一个bug之外,我的大部分代码都有效:

用户将项目拖放到droppable中。 然后拖出(执行输出function)然后他没有放入droppable(恢复发生,拖动回到之前的droppable)。 有效发生的事情是droppable现在可以接受任何拖动(因为拖动离开,执行),而拖动从未实际因为恢复而离开。

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

//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/