JSFiddle - React, Tailwind, and code Playground

by tunafish

HTML

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/base/jquery-ui.css">
<ul id="sortable1" class="connectedSortable">
    <li class="ui-state-default">Item 1</li>
    <li class="ui-state-default">Item 2</li>
    <li class="ui-state-default">Item 3</li>
    <li class="ui-state-default">Item 4</li>
    <li class="ui-state-default">Item 5</li>
</ul>

<ul id="sortable2" class="connectedSortable">
    <li class="ui-state-highlight">Item 1</li>
    <li class="ui-state-highlight">Item 2</li>
    <li class="ui-state-highlight">Item 10</li>
</ul>

CSS

.connectedSortable { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; }
.connectedSortable li { margin: 5px; padding: 5px; width: 120px; }
ul { background: gray; width:142px; padding-left:10px; }

JavaScript

$("ul, li").disableSelection();

$("#sortable1, #sortable2").sortable({
    connectWith: "#sortable1, #sortable2",
    placeholder: "ui-state-active", 
    forcePlaceholderSize: true, 
    start: startDrag, 
    stop: stopDrag
});

function startDrag(event, ui) {
    $("#sortable2").css("opacity","0.5")
    
    // $("#sortable2").sortable("cancel"); // goes whooooo
    /* docs say:
    If the sortable item is being moved from one connected sortable to another:
    $(ui.sender).sortable('cancel');
    will cancel the change. Useful in the 'receive' callback. 
    */
    // $("#sortable1").sortable("cancel"); // I only want to cancel dropping in sortable2...
    
    // $("#sortable2").sortable("disable"); // disables only after the drop event
    
    $("#sortable2").sortable("destroy"); // same as "disable"
}
function stopDrag(event, ui) {
    $("#sortable2").css("opacity","1.0");
    // $("#sortable2").sortable("enable");
}