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)
})