Annuler le déplacement d'un élément sortable
absolument commun sortable cas:
<script>
$(function() {
$("#sortable").sortable();
});
</script>
<ul id="sortable">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
problème. besoin d'annuler le dragage d'un article à une certaine condition et il y a un bon conseil de Andrew Whitaker , mais cette approche ne fonctionne que pour jquery-ui-draggable et échoue pour les sortables:
$("#sortable").sortable({
start: function() {
return false; // will still cause `this.helper is null`
}
});
sera très utile pour des suggestions.
4 réponses
Sortable a une capacité" cancel "invoquée en utilisant sortable('cancel')
.
à Partir de la documentation: "Annule un changement dans le courant sortable et revient à l'état, avant le moment où le tri actuel a été commencé."Voir http://api.jqueryui.com/sortable/#method-cancel .
exemple d'usage:
$("#sortable").sortable({
stop: function(e, ui) {
if ("I need to cancel this") {
$(ui.sender).sortable('cancel');
}
}
});
Returning false
as fudgey suggère des travaux grands pour rendre les choses dynamiquement Invendable, mais il y a aussi un cancel
option dans la config sortable qui vous permet de mettre en place static unsortables ainsi:
$("#sortable").sortable({
// this prevents all buttons, form fields, and elemens
// with the "unsortable" class from being dragged
cancel: ":input, button, .unsortable"
});
Essayer cet exemple
$('#list1').sortable({ connectWith: 'ul' }); $('#list2').sortable({ connectWith: 'ul', receive: function(ev, ui) { if(ui.item.hasClass("number")) ui.sender.sortable("cancel"); } });