Наконец-то нашли правильное решение, хотя и немного «хакерское». То, что я делаю, я устанавливаю div переднего плана с перетаскиваемыми объектами в качестве объекта перетаскивания, но использую функции droppover и dropout, чтобы определить, находится ли элемент вне переднего плана div. Когда он находится вне div, я связываю событие mouseup, чтобы выполнить функцию удаления. Когда он вернется, я отсоединяю событие mouseup, чтобы оно не срабатывало.
Потому что при перетаскивании я уже удерживаю кнопку мыши нажатой, отпускание - это то же самое, что сбросить то, что у меня есть в моей "руке".
$("#foregroundDiv").droppable({
accept: ".draggableThingy",
tolerance: "pointer",
out: function(event, ui) {
$(ui.helper).mouseup(function() {
doSomethingTo(ui.draggable);
});
},
over: function(event, ui) {
$(ui.helper).unbind("mouseup");
}
});