An absolutely common sortable case:
<script> $(function() {   $("#sortable").sortable(); }); </script>  <ul id="sortable">   <li>Item 1</li>   <li>Item 2</li>   <li>Item 3</li> </ul> Problem. Need to cancel dragging of an item on some condition and there is a good advice of Andrew Whitaker, but that approach is working only for jquery-ui-draggable and fails for sortables:
$("#sortable").sortable({   start: function() {     return false; // will still cause `this.helper is null`   } }); Will be greateful for suggestions.
Sortable has a "cancel" capability invoked using sortable('cancel').
From the docs: "Cancels a change in the current sortable and reverts it to the state prior to when the current sort was started." See http://api.jqueryui.com/sortable/#method-cancel.
Example usage:
$("#sortable").sortable({   stop: function(e, ui) {     if ("I need to cancel this") {       $(ui.sender).sortable('cancel');     }   } }); Returning false as fudgey suggests works great for making things dynamically unsortable, but there's also a cancel option in the sortable config which lets you set up static unsortables as well:
$("#sortable").sortable({     // this prevents all buttons, form fields, and elemens     // with the "unsortable" class from being dragged     cancel: ":input, button, .unsortable" }); 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