J'ai également dû faire la même chose, et je ne voulais pas utiliser l'extension d'interface de eyecon.ro. Après quelques recherches, j'ai trouvé Combining Selectables And Draggables Using jQuery UI. C'est bien dit, mais pour faire fonctionner les extraits de code, il faut creuser dedans. J'étais capable de le faire fonctionner. J'ai légèrement changé, c'est ma façon de le faire. Il a besoin de modifications pour être utilisé au niveau de la production, mais j'espère que cela aidera.
// this creates the selected variable
// we are going to store the selected objects in here
var selected = $([]), offset = {top:0, left:0};
// initiate the selectable id to be recognized by UI
$("#selectable").selectable({
filter: 'div',
});
// declare draggable UI and what we are going to be doing on start
$("#selectable div").draggable({
start: function(ev, ui) {
selected = $(".ui-selected").each(function() {
var el = $(this);
el.data("offset", el.offset());
});
if(!$(this).hasClass("ui-selected")) $(this).addClass("ui-selected");
offset = $(this).offset();
},
drag: function(ev, ui) {
var dt = ui.position.top - offset.top, dl = ui.position.left - offset.left;
// take all the elements that are selected expect $("this"), which is the element being dragged and loop through each.
selected.not(this).each(function() {
// create the variable for we don't need to keep calling $("this")
// el = current element we are on
// off = what position was this element at when it was selected, before drag
var el = $(this), off = el.data("offset");
el.css({top: off.top + dt, left: off.left + dl});
});
}
});
Styles CSS pour être en mesure de voir ce qui se passe:
#selectable { width: 100%; height: 100%;}
#selectable div {
background: #ffc;
line-height: 25px;
height: 25px;
width: 200px;
border: 1px solid #fcc;
}
#selectable div.ui-selected {
background: #fcaf3e;
}
#selectable div.ui-selecting {
background: #8ae234;
}
HTML Markup:
<div id="selectable">
<div>item 1</div>
<div>item 2</div>
<div>item 3</div>
<div>item 4</div>
</div>
Le code dans http://stackoverflow.com/questions/34698117/elements-became-randomly-non-resizable-after-dragging queston contient aussi une réponse à cette question Cependant le code dans les réponses cause une perte aléatoire de redimensionnable par glisser – Andrus