Я искал в сети тот же самый перетаскиваемый вопрос этим утром.
Решение NikhilWanpal работает, но иногда в моем случае неправильная позиция возврата, возможно, из-за того, что мои перетаскиваемые элементы содержатся в прокручиваемом контейнере.
Я нашел эту статью , в которой объясняется, как реализовать очень полезную недокументированную функцию: jQuery UI Draggable Revert Callback.
Проверьте свой ответ в этом обратном вызове (если это возможно длявы) и верните «TRUE» для отмены или «FASLE» для подтверждения новой позиции.
$(".peg").draggable(
{
revert: function(socketObj)
{
//if false then no socket object drop occurred.
if(socketObj === false)
{
//revert the peg by returning true
return true;
}
else
{
//socket object was returned,
//we can perform additional checks here if we like
//alert(socketObj.attr('id')); would work fine
//return false so that the peg does not revert
return false;
}
},
snap: '.socketInner',
snapMode: 'inner',
snapTolerance: 35,
distance: 8,
stack: { group: 'pegs', min:50 },
stop: function()
{
draggedOutOfSocket = false;
alert('stop');
}
} );
Хорошего дня