在以下代码中:
$(".drag").draggable({
snap: ".drop",
snapMode: "inner",
snapTolerance: 50,
revert: "invalid",
start: function(){
start_moves=moves;
},
stop: function(){
stop_moves=moves;
}
});
$(".drop").droppable({
tolerance: "fit",
drop: function (event, ui) {
$(this).droppable('option', 'accept', ui.draggable); //accepts only the current draggable
moves++;
$("#total_moves").text(moves);
},
out: function (event, ui) {
$(this).droppable('option', 'accept', ".drag"); //accepts all draggables
}
});
以下是给我提出问题的事件序列:
将Drag1移至Drop2现在已成功,因为在“out”事件中的行之后:
$(this)。droppable('option','accept',“。drag”); //接受所有可拖动的
“over”事件(我删除)不会被触发再次只接受当前的draggable。因此,允许多个可拖动到一个droppable中,这是不需要的行为。
所以问题是,当一个可拖动的,在被拖出一个droppable后,由于“revert:'invalid'”而自动恢复到同一个droppable,我怎样才能让droppable识别出draggable有重新进入(以便“out”不是唯一触发的事件)? “结束”事件并没有成功。