Est-il un moyen de faire glisser et déposez-la réorganisation de l'aperçu des éléments dans un dropzone.js exemple?
J'ai un dropzone.js exemple sur une page web avec les options suivantes:
autoProcessQueue:false
uploadMultiple:true
parallelUploads:20
maxFiles:20
Il est instancié par programme, car il fait partie d'une plus grande forme. Je l'ai calé pour le traitement de la file d'attente lorsque le formulaire est soumis.
L'objectif est pour mes utilisateurs d'être en mesure d'utiliser la dropzone de gérer des images pour un article, donc je voudrais qu'ils soient en mesure de remettre en ordre les images par glisser-déposer l'dropzone.js les aperçus d'image. Est-il une bonne façon de le faire? J'ai essayé à l'aide de jquery-ui sortable, mais il ne semble pas jouer gentil avec dropzone.js.
Vous devez vous connecter pour publier un commentaire.
J'ai travaille maintenant à l'aide de jquery-ui sortable. L'astuce est de faire en sorte d'utiliser les 'éléments' option dans triable de choisir seulement le dz-aperçu des éléments, parce que dropzone.js a la dz-message d'élément avec l'dz-aperçu des éléments dans le conteneur principal. Voici comment mon code ressemble:
Le code HTML:
Le script:
$dropzone.sortable({start: function(e, ui) { $dropzone.removeClass('dz-clickable'); ui.item.removeClass('dz-success') }, stop: function() $dropzone.addClass('dz-clickable') }, update: function(e, ui) { console.log('Item reordered!', ui.item); }
– supprimer dz-cliquable pour désactiver la boîte de dialogue ouvrir fichier après le faisant glisser. supprimer dz-succès parce que les animations joué à chaque fois après le glissement. Aussi, j'ai eu problème avec le point de disparaître tout en faisant glisser – il y avait un bug dans jquery-ui sortable.js – remplacéthis.document[0]
avecthis.document[0].body
sur la ligne de 1008$dropzone = $('.images-dropzone'); new Dropzone($dropzone.get(0), options); $dropzone.sortable(sortable_options);
Outre le code de ralbatross vous aurez besoin de définir l'ordre de la file d'attente de dropzone..
Quelque chose comme:
Et rappelez-vous que le fichier est traité async, je garde une table de hachage pour référence lorsque le fichier est fait et sauvegarder l'ordre à la fin.
Il ne fonctionne pas avec les noms de fichiers doublons
var name = el.innerHTML;
au lieu devar name = el.getAttribute('data-name');
newQueue
avant d'essayer de faire pousser quoi que ce soit:var queue = uploadzone.files, newQueue = [];
Voici une autre option sans plugins. Sur le succès de rappel d'événement, vous pouvez faire un peu de tri manuel: