JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/themes/pepper-grinder/jquery-ui.css">
<div class="demo">
<ol id="selectable">
<li class="ui-state-default">1</li>
<li class="ui-state-default">2</li>
<li class="ui-state-default">3</li>
<li class="ui-state-default">4</li>
<li class="ui-state-default">5</li>
<li class="ui-state-default">6</li>
<li class="ui-state-default">7</li>
<li class="ui-state-default">8</li>
<li class="ui-state-default">9</li>
<li class="ui-state-default">10</li>
<li class="ui-state-default">11</li>
<li class="ui-state-default">12</li>
</ol>
</div>
CSS
#feedback { font-size: 1.4em; }
#selectable .ui-selecting { background: #FECA40; }
#selectable .ui-selected { background: #F39814; color: white; }
#selectable { list-style-type: none; margin: 0; padding: 0; }
#selectable li { margin: 3px; padding: 1px; float: left; width: 100px; height: 80px; font-size: 4em; text-align: center; }
JavaScript
var $currentlySelected = null;
var selected = [];
$('#selectable').selectable({
start: function(event, ui) {
$currentlySelected = $('#selectable .ui-selected');
},
stop: function(event, ui) {
for (var i = 0; i < selected.length; i++) {
if ($.inArray(selected[i], $currentlySelected) >= 0) {
$(selected[i]).removeClass('ui-selected');
}
}
selected = [];
},
selecting: function(event, ui) {
$currentlySelected.addClass('ui-selected'); // re-apply ui-selected class to currently selected items
},
selected: function(event, ui) {
selected.push(ui.selected);
}
});