Solution De Travail
tl;dr: reportez-vous à ce Violon pour un travail de réponse.
J'ai cherché partout une solution à la question de glisser plusieurs éléments sélectionnés à partir d'un triable dans un connecté sortable, et ces réponses ont été les meilleurs que j'ai pu trouver.
Cependant...
L'on a accepté la réponse est buggé, et @Shanimal la réponse est proche, mais pas tout à fait terminée. J'ai pris @Shanimal du code et de la construction.
Je le fixe:
J'ai ajouté:
- Bon Ctrl + clic (ou Cmd + clic sur un mac) de soutien pour la sélection de plusieurs éléments. En cliquant sur sans la touche Ctrl touche fera que l'élément sélectionné, et d'autres éléments dans la même liste pour être désélectionnée. C'est la même chose sur le comportement comme le jQuery UI
Selectable()
widget, la différence étant que, Selectable()
a un rectangle de sélection sur mousedrag.
Violon
HTML:
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
<ul>
<li>Four</li>
<li>Five</li>
<li>Six</li>
</ul>
JavaScript (avec jQuery et jQuery UI):
$("ul").on('click', 'li', function (e) {
if (e.ctrlKey || e.metaKey) {
$(this).toggleClass("selected");
} else {
$(this).addClass("selected").siblings().removeClass('selected');
}
}).sortable({
connectWith: "ul",
delay: 150, //Needed to prevent accidental drag when trying to select
revert: 0,
helper: function (e, item) {
var helper = $('<li/>');
if (!item.hasClass('selected')) {
item.addClass('selected').siblings().removeClass('selected');
}
var elements = item.parent().children('.selected').clone();
item.data('multidrag', elements).siblings('.selected').remove();
return helper.append(elements);
},
stop: function (e, info) {
info.item.after(info.item.data('multidrag')).remove();
}
});
NOTE:
Depuis que j'ai posté, j'ai mis en place quelque chose simmilar - connexion déplaçable éléments de liste triable, avec la multi-sélection de la capacité. Il est mis en place presque exactement la même, depuis jQuery UI widgets sont si semblables. Une INTERFACE utilisateur de pointe est de vous assurer d'avoir l' delay
jeu de paramètres pour le draggables ou d'options, de sorte que vous pouvez cliquer pour sélectionner plusieurs éléments sans lancer une traînée. Ensuite, vous construire un assistant, qui ressemble à l'instar de tous les éléments sélectionnés (faire un élément nouveau, dupliquer les éléments sélectionnés, et de les ajouter), mais assurez-vous de quitter le poste d'origine intact (sinon c'vis de la fonctionnalité - je ne peux pas dire exactement pourquoi, mais il implique beaucoup de frustrant DOM Exceptions).
J'ai aussi ajouté des Maj + Cliquez sur la fonctionnalité, de sorte qu'il fonctionne plus comme des applications de bureau. Je devrais peut-être commencer un blog donc je peux exposer plus en détail :-)