JSFiddle - React, Tailwind, and code Playground
HTML
<div class="container">
<a href="#" class="item">1</a>
<a href="#" class="item">3</a>
<a href="#" class="item">A</a>
<a href="#" class="item">B</a>
<a href="#" class="item">C</a>
</div>
CSS
a.item {
display: block;
background-color: silver;
border: 1px solid gray;
padding: 10px;
margin: 10px;
}
a.item.selected {
background-color: green;
}
JavaScript
var goToLast = true;
$('.item').each(function() {
var $this = $(this).data({
position: $(this).index()
}),
$table = $this.closest('.container'),
$input = $this;
$input.bind('click', function(e) {
$input.toggleClass('selected');
var $first = $table.find('.item:first'),
position;
if ($(this).hasClass('selected')) {
position = !goToLast ? $first.data('position') : $table.children().length - 1;
$table.find('.item').not($(this)).removeClass('selected');
if (position != 0) $first.insertAfter($table.find('.item').eq(position));
$this.prependTo($table);
} else if ($this.data('position') != 0) {
position = $this.data('position');
$this.insertAfter($table.find('.item').eq(position));
}
});
});