JSFiddle - React, Tailwind, and code Playground
by EDWIN MAURICIO QUISHPE MALDONADO
HTML
<script src="http://johnny.github.io/jquery-sortable/js/jquery-sortable.js"></script>
<div class="row">
<div class="span4">
<div class="switch-container">
<div class="switch active" data-off="OFF" data-on="ON" data-toggle="switch"><span class="switch-track"></span><span class="switch-thumb" data-on="ON" data-off="OFF"></span></div>
</div>
<ol class="nested_with_switch vertical">
<li>
Item 1
</li>
<li>
Item 2
</li>
<li>
Item 3
</li>
<li>
Item 4
<ol>
<li>Item 3.1</li>
<li>Item 3.2</li>
<li>Item 3.3</li>
<li>Item 3.4</li>
<li>Item 3.5</li>
<li>Item 3.6</li>
</ol>
</li>
<li>
Item 5
</li>
<li>
Item 6
</li>
</ol>
</div>
<div class="span4">
<div class="switch-container">
<div class="switch active" data-off="OFF" data-on="ON" data-toggle="switch"><span class="switch-track"></span><span class="switch-thumb" data-on="ON" data-off="OFF"></span></div>
</div>
<ol class="nested_with_switch vertical">
<li>
Item 1
</li>
<li>
Item 2
</li>
<li>
Item 3
</li>
<li>
Item 4
<ol>
<li>Item 3.1</li>
<li>Item 3.2</li>
<li>Item 3.3</li>
<li>Item 3.4</li>
<li>Item 3.5</li>
<li>Item...
CSS
body{
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 18px;
color: #333333;
background-color: white;
}
.switch-container{
display: block;
margin-left: auto;
margin-right: auto;
width: 80px;
}
ol.nested_with_switch, ol.nested_with_switch ol{
border: 1px solid #eeeeee;
}
ol.vertical{
margin: 0 0 9px 0;
min-height: 10px;
}
ol{
list-style-type: none;
}
ol{
list-style: decimal;
}
ol, ul{
padding: 0;
margin: 0 0 9px 25px;
}
ol{
display: block;
list-style-type: decimal;
-webkit-margin-before: 1em;
-webkit-margin-after: 1em;
-webkit-margin-start: 0px;
-webkit-margin-end: 0px;
-webkit-padding-start: 40px;
}
ol.nested_with_switch li, ol.simple_with_animation li, ol.serialization li, ol.default li{
cursor: pointer
}
ol.vertical li{
display: block;
margin: 5px;
padding: 5px;
border: 1px solid #cccccc;
color: #0088cc;
background: #eeeeee;
}
li{
line-height: 18px;
}
li{
display: list-item;
text-align: -webkit-match-parent;
}
ol.nested_with_switch, ol.nested_with_switch ol{
border: 1px solid #eeeeee;
}
ul ul, ul ol, ol ol, ol ul{
margin-bottom: 0;
}
div{
display: block;
}
.row{
position: relative;
}
.row::before, .row::after{
display: table;
content: "";
}
.span4{
width: 300px;
}
[class*="span"]{
float: left;
margin-left: 20px;
}
:focus{
outline-style: auto;
outline-width: 5px;
outline-color: -webkit-focus-ring-color;
}
ol li ol li:active {
border-color: black;
}
JavaScript
var oldContainer
$("ol.nested_with_switch").sortable({
group: 'nested',
afterMove: function (placeholder, container) {
if(oldContainer != container){
if(oldContainer)
oldContainer.el.removeClass("active")
container.el.addClass("active")
oldContainer = container
}
},
onDrop: function (item, container, _super) {
container.el.removeClass("active")
_super(item)
}
})
$(".switch-container").on("click", ".switch", function (e) {
var method = $(this).hasClass("active") ? "enable" : "disable"
$(e.delegateTarget).next().sortable(method)
})