2011-03-09 6 views
0

Voici le point crucial: je dois désactiver/contenir glisser et déposer entre deux sortables seulement pour des éléments particuliers, tout en permettant à ces mêmes éléments de être traîné et déposé dans leur sortable. Je ne vois pas comment je peux le faire avec cancel ou containment parce qu'ils s'appliquent à tous les articles de tri ou tous. Est-il possible d'annuler seulement le tri entre les sortables? ou est-il possible de ne contenir que certains éléments?jquery ui sortable - contenir ou annuler pour seulement quelques articles dans sortable, seulement quelques destinations

Voici la situation d'arrière-plan: J'ai deux sortables qui se connectent bien en utilisant l'option connectWith. Ils représentent deux colonnes d'un bulletin, et vous pouvez ajouter des éléments à chaque colonne et les faire glisser et les déposer entre eux. Cependant, ces éléments ont des types et il y a une limite au nombre d'éléments de chaque type que vous pouvez avoir dans chaque colonne. Donc, le problème est que je veux désactiver le glissement d'éléments d'une colonne à l'autre si l'autre colonne a déjà atteint un maximum sur ce type d'élément. Je n'ai aucun problème à identifier quand un type d'article est maxed dans une colonne ou identifier quels articles devraient ou ne devraient pas être traînés. C'est juste une question de déclencher la bonne fonctionnalité dans jquery ui.

Répondre

3
$(function() { 
    $("#sortable1, #sortable2").sortable({ 
     connectWith: ".connectedSortable", 
     receive: function(event, ui) { 
     if ($(this).find('li').size() == 7) { 
     $(ui.sender).sortable('cancel'); 
     } 
     } 
    }); 
    }); 

si #sortable portée 7 éléments qui y sont cesser d'accepter d'autres articles