$(function() {
function draw(cObj, cA, cB) {
var ctx = cObj[0].getContext('2d');
ctx.fillStyle = cA;
ctx.fillRect(10, 10, 50, 50);
ctx.fillStyle = cB;
ctx.fillRect(30, 30, 50, 50);
}
function clone(cObj, aObj) {
if (aObj == undefined) {
aObj = {};
}
var newCanvas = $("<canvas>").attr(aObj).prop({
width: cObj.width(),
height: cObj.height()
});
var ctx = newCanvas[0].getContext("2d");
ctx.drawImage(cObj[0], 0, 0);
return newCanvas;
}
draw($("#canvas-1"), "rgb(255,0,0)", "rgba(0,255,0,0.5)");
draw($("#canvas-2"), "rgb(0,255,0)", "rgba(0,0,255,0.5)");
draw($("#canvas-3"), "rgb(0,0,255)", "rgba(255,0,0,0.5)");
draw($("#canvas-4"), "rgb(0,255,0)", "rgba(255,0,0,0.5)");
draw($("#canvas-5"), "rgb(255,0,0)", "rgba(0,0,255,0.5)");
draw($("#canvas-6"), "rgb(0,0,0)", "rgba(20,20,20,0.5)");
draw($("#canvas-7"), "rgb(20,20,20)", "rgba(40,40,40,0.5)");
draw($("#canvas-8"), "rgb(40,40,40)", "rgba(60,60,60,0.5)");
draw($("#canvas-9"), "rgb(60,60,60)", "rgba(80,80,80,0.5)");
$("#sortable1, #sortable2").sortable({
connectWith: ".connectedSortable",
helper: function(e, item) {
var li = $("<li>").css("border", "1px solid #000");
var newCan = clone($("canvas", item));
li.append(newCan);
return li[0];
}
}).disableSelection();
});
#sortable1,
#sortable2 {
border: 1px solid #eee;
min-height: 20px;
list-style-type: none;
margin: 0;
padding: 5px 0 0 0;
float: left;
margin-right: 10px;
width: 105px;
}
#sortable1 li,
#sortable2 li {
margin: 0;
padding: 0;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<ul id="sortable1" class="connectedSortable">
<li class="ui-state-default"><canvas id="canvas-1" width="100" height="100"></canvas></li>
<li class="ui-state-default"><canvas id="canvas-2" width="100" height="100"></canvas></li>
<li class="ui-state-default"><canvas id="canvas-3" width="100" height="100"></canvas></li>
<li class="ui-state-default"><canvas id="canvas-4" width="100" height="100"></canvas></li>
<li class="ui-state-default"><canvas id="canvas-5" width="100" height="100"></canvas></li>
</ul>
<ul id="sortable2" class="connectedSortable">
<li class="ui-state-default"><canvas id="canvas-6" width="100" height="100"></canvas></li>
<li class="ui-state-default"><canvas id="canvas-7" width="100" height="100"></canvas></li>
<li class="ui-state-default"><canvas id="canvas-8" width="100" height="100"></canvas></li>
<li class="ui-state-default"><canvas id="canvas-9" width="100" height="100"></canvas></li>
</ul>