I call sortable.stop()
to make an ajax call to store some data after drag & drop operation.
When the ajax call returns an error (application logic error or net problem) I want to move the dragged element to its original/start position, how can I achieve it?
The scenario should be
sortable.stop()
event is called, it triggers an ajax callstop()
event we get the ajax errorSteps 6-8 are shown to clarify a successive drag can be done and previous error must be forgotten.
Have a look at .sortable('cancel')
; something like this:
var list = $('#some-list')
list.sortable(
{
// Some options.
stop: function()
{
$.post('some-url', someData, function()
{
if (somethingWentWrong)
{
list.sortable('cancel');
}
});
}
});
Thanks to dafi - this works for me:
$('#some-list').sortable({
// other options here,
receive: function(event, ui) {
// ajax or function here
if(somethingWentWrong) {
$(this).sortable('cancel');
$(ui.sender).sortable('cancel');
}
}
});
I'm not sure if you need $(this).sortable('cancel');
, but I figure it's best to cancel the source and the destination sortable lists. This way the list item reverts immediately. Other Sortable options here.
Thanks, liveat60fps , its the second statement out of the two which you only need.
$('#some-list').sortable({
// other options here,
receive: function(event, ui) {
// ajax or function here
if(somethingWentWrong) {
$(this).sortable('cancel');
$(ui.sender).sortable('cancel');
}
}
});
This way on a certain condition, you can revrt back to the orignal state.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With