Sortable with trashcan
Drag and drop sortable with trashcan. Uses Element.Collide() external Class.
HTML
<script src="https://raw.github.com/jnbdz/elCollide/master/Source/Element.collide.js"></script>
<ul id="sortable-list">
<li title="1" id="1" data-rel="Item 1" class="list"><span class="draggable">Drag here: </span>profesor</li>
<li title="2" id="2" data-rel="Item 2" class="list"><span class="draggable">Drag here: </span>alumno</li>
<li title="3" id="3" data-rel="Item 3" class="list"><span class="draggable">Drag here: </span>docente</li>
<li title="4" id="4" data-rel="Item 4" class="list"><span class="draggable">Drag here: </span>ingeniero</li>
<li title="5" id="5" data-rel="Item 5" class="list"><span class="draggable">Drag here: </span>administrador</li>
<li title="6" id="6" data-rel="Item 6" class="list"><span class="draggable">pregunta: </span>director</li>
</ul>
<div id="trashcan">
<p>hola amigos</p>
</div>
CSS
#sortable-list {
width:45%;
float:left;
margin-right:5px;
}
.list {
display:block;
margin:3px;
padding:3px;
border:solid 1px black;
background:#EFEFEF;
}
.list span {
color:red;
font-weight:bold;
cursor:move;
}
#trashcan {
border:solid 1px black;
background:#FFCCCC;
padding:5px;
margin:5px;
float:right;
}
JavaScript
var acomoda = null;
acomoda = new Sortables('#sortable-list', {
clone: true,
revert: true,
handle: '.draggable',
opacity: 0.5,
dragOptions: {
onDrop: function(element) {
var basura = $('trashcan');
acomoda.destruye = false;
if (element.collide(basura)) {
console.log(element, 'colisionado con', basura);
acomoda.destruye = true;
}
}
},
onComplete: function(element) {
if (acomoda.destruye) {
console.log('Destruir', element);
element.nix();
}
}
});