我正在努力使多个可拖动的项目只能拖动到1个dropable。如果丢弃在droppable之外然后恢复。除了一个错误之外,我的大多数代码都有效:
用户将项目拖放到droppable中。然后拖出(执行输出功能)然后他没有放入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/