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");
}
});