La idea es que cada elemento agregado a un contenedor sea sorteable solo dentro de el. dejo el código:
Código HTML :
<div class="container"> <div class="row"> <div class="col-md-4"> <button type="button" class="btn btn-default add-container">Add Drop container</button> </br> <ul class="list-unstyled" id="draggable"> <li> <div class="row"> <div class="col-xs-6 col-md-4"> <img name="SELECT" src="http://s13.postimg.org/j0qxzty7n/select.png"/> </div> <div class="col-xs-6 col-md-4 options"></div> </div> </li> <li> <div class="row"> <div class="col-xs-6 col-md-4"> <img name="INPUT" src="http://s30.postimg.org/x7f311jv1/input.png" /> </div> <div class="col-xs-6 col-md-4 options"></div> </div> </li> <li> <div class="row"> <div class="col-xs-6 col-md-4"> <img name="DATE" src="http://s24.postimg.org/cylp3nzkx/date.png"/> </div> <div class="col-xs-6 col-md-4 options"></div> </div> </li> </ul> </div> <div class="col-md-6 containers"> Drop container <ul class="sortable"></ul> </div> </div> </div>
Código Javascript :
$(function() { $(':button.add-container').on('click', function(event){ var ul = $('<ul></ul>'); var container = $('div.containers'); $(container).append(ul.attr('class', 'sortable')); }); $( "#draggable li" ).draggable({ connectToSortable: ".sortable", helper: "clone", revert: "invalid" }).disableSelection(); $( ".sortable" ).sortable({ revert: true }).disableSelection(); });
Código CSS :
@import url('http://getbootstrap.com/dist/css/bootstrap.css'); .container{ margin-top: 20px; } .sortable { border: 1px solid black; min-width: 100px; min-height: 100px; list-style: none } .sortable li { padding: 5px; } #draggable li { padding-top: 10px; padding-bottom: 5px; }
Espero sus comentarios, saludos.