Comment puis-je faire de l'enceinte de confinement un sous-ensemble de cellules. c'est-à-dire en omettant la ligne d'en-tête et la colonne la plus à gauche?jquery confinement draggable: sous-ensemble d'une table
0
A
Répondre
6
L'optimal serait de simplement envoyer un sélecteur pour les champs qui devraient contenir le confinement, mais comme cela ne fonctionnera pas j'ai tripoté avec une solution alternative. Je ne dirais pas que c'est très optimal mais je vais essayer. Trouvez les points extrêmes (à gauche, en haut, à droite, en bas) des cellules que vous êtes censé faire glisser le draggable et définissez ces points comme le confinement du draggable. Dans mon exemple, j'ai donné ces éléments (td
s de la table) la classe containmentTD
. Il ne prend pas en compte les frontières, padding ect, il faudra donc le peaufiner si c'est important.
//The TD elements that are to be included when
//we find the dimentions of the containment
var td_elements = $(".containmentTD");
//This will hold the extreme points of the containment
var points = {
left: td_elements.eq(0).position().left,
top: td_elements.eq(0).position().top,
right: 0,
bottom: 0
};
//Find the points of the containment
td_elements.each(function() {
var t = $(this);
var p = t.position();
var width = t.width();
var height = t.height();
points.left = Math.min(p.left, points.left);
points.top = Math.min(p.top , points.top);
points.right = Math.max(points.right, p.left + width);
points.bottom = Math.max(points.bottom, p.top + height);
});
//This will only work "perfectly" when all draggables have
//the same dimentions
points.bottom -= $("div.draggable:first").height();
points.right -= $("div.draggable:first").width();
$("div.draggable").draggable({
containment: [points.left, points.top, points.right, points.bottom]
});
Voici une démo: http://jsfiddle.net/uTyTY/ Notez que le carré rouge est là que pour visualiser la zone de confinement
Questions connexes
- 1. jquery draggable - Obtenir confinement pour ne contenir que le handle
- 2. Animation de confinement jQuery
- 3. jquery - draggable
- 4. En jQuery, Comment réparer le bogue de confinement lors de l'utilisation de resizable() et draggable() simultanément?
- 5. Draggable Jquery
- 6. JQuery Draggable
- 7. jquery draggable
- 8. draggable sur l'élément parent
- 9. jQuery droppable/draggable
- 10. jQuery draggable/droppable probleme
- 11. jquery draggable acceptent: classpath
- 12. Jquery Draggable/direct
- 13. jquery draggable to sortable
- 14. JQuery draggable divs
- 15. jquery élément draggable perdu
- 16. jQuery UI propriétés draggable
- 17. Problème avec jQuery Draggable
- 18. jQuery, draggable, id conteneur
- 19. Jquery draggable et clone
- 20. Calculer divs draggable - jquery
- 21. jQuery-UI Datepicker: Draggable?
- 22. jquery options draggable
- 23. Éléments d'entrée jQuery Draggable
- 24. Précision draggable dans jQuery
- 25. Jquery Problème de confinement par glisser-déposer - Problème CSS?
- 26. jQuery: Ajouter le bouton ui-close pour redimensionner/draggable?
- 27. Interface utilisateur jQuery: le confinement sur l'élément déplaçable est buggé
- 28. jQuery live draggable/live droppable?
- 29. JQuery UI Draggable - Comment savoir qu'un élément est draggable initialisé?
- 30. Aide Jquery: Draggable à Sortable, puis de nouveau à draggable