Приношу свои извинения, если на этот вопрос был дан ответ в другом вопросе, я не смог найти ответ, специфичный для моей проблемы!
Я пытаюсь проверить, удаляется ли перетаскиваемый объект jQuery за пределами допустимого. Обычно это решается в 90% случаев путем возврата перетаскиваемого объекта, но я не хочу этого делать. Вместо этого я хочу сделать что-то одно, если перетаскиваемый объект сбрасывается на сбрасываемый объект (отлично работает!), И что-то еще, если он отбрасывается за пределами всех возможных сбрасываемых объектов (в настоящее время меня побеждают!).
Вкратце:
jQuery('#droppable').droppable(
{
accept: '#draggable',
drop: function(event, ui)
{
// awesome code that works and handles successful drops...
}
});
jQuery('#draggable').draggable(
{
revert: false,
stop: function()
{
// need some way to check to see if this draggable has been dropped
// successfully or not on an appropriate droppable...
// I wish I could comment out my headache here like this too...
}
});
Мне кажется, что я упускаю что-то действительно очевидное ... заранее спасибо за любую помощь!
Старый вопрос и старые ответы означают, что это "может" быть новым решением. Вы, (возможно), также хотели, как вопрос указывает, чтобы знать, БЫЛО ЛИ перемещаемое отброшено за пределами сбрасываемого. Для меня, по крайней мере в 95% случаев, я действительно не забочусь, ХОЧУ ЛИ, я просто вещи вернуться к тому, как они были без любых изменений, внесенных, КОГДА это происходит.
Установка revert
к строке invalid
выполняет желаемое поведение без любого дополнительного кода или броских вещей сделать.
$( '#draggable' ).draggable({
revert: "invalid",
stop: function( event, ui )
{
// whatever
}
});
Снова, это не скажет Вам, "если это было отброшено за пределами сбрасываемого", но это вернется к начальному состоянию, если это произойдет.