После некоторого тестирования я смог повторить проблему. При перетаскивании из document
элемент больше не «присоединяется» к событию mousedown в некотором смысле. drop
срабатывает.
Обойти, использовать опцию containment
.
Рабочий пример: https://jsfiddle.net/Twisty/fqkmL07x/8/
JavaScript
$(function() {
$('.sortable').sortable({
containment: ".container",
start: function(event, ui) {
ui.placeholder.html(' ');
},
});
$('.dropzone').droppable({
accept: '.sortable .item',
containment: ".container",
drop: function(event, ui) {
console.log('droppable.drop!');
ui.draggable.remove();
var dropedItem = ui.draggable.clone();
dropedItem.appendTo($(this));
dropedItem.draggable({
connectToSortable: '.sortable',
});
},
over: function(event, ui) {
console.log('droppable.over');
},
out: function(event, ui) {
console.log('droppable.out');
}
});
});
Теперь вы не можете "потерять" свой предмет, и падение не сработает.