My list of countries I can't move item current and last position and firs position. But move element down and up position is correct.
My HTML:
<div class="ListCountries">
<div class="item">Argentina</div>
<div class="item">Bolivia</div>
<div class="item">Brasil</div>
<div class="item">Chile</div>
<div class="item">Colombia</div>
<div class="item">Ecuador</div>
<div class="item">Paraguay</div>
<div class="item">Peru</div>
<div class="item">Uruguay</div>
<div class="item">Venezuela</div>
</div>
My Javascript/jQuery:
$(".item").append("<p><button class='down'>down↓</button><button class='up'>up↑</button><button class='first'>Move First</button><button class='last'>Move last</button></p>");
$(document).on("click",".up",function() {
var ob = $(this).closest('.item');
ob.insertBefore(ob.prev());
});
$(document).on("click",".down",function() {
var ob = $(this).closest('.item');
ob.insertAfter(ob.next());
});
$(document).on("click",".first",function() {
var ob = $(this).closest('.item');
ob.insertAfter(ob.prepend());
});
$(document).on("click",".last",function() {
var ob = $(this).closest('.item');
ob.insertAfter(ob.append());
});
My jsFiddle:
https://jsfiddle.net/cds0f5yp/20/
What am I doing wrong?
Try this:
$(".item").append("<p><button class='down'>down↓</button><button class='up'>up↑</button><button class='first'>Move First</button><button class='last'>Move last</button></p>");
$(document).on("click",".up",function() {
var ob = $(this).closest('.item');
ob.insertBefore(ob.prev());
});
$(document).on("click",".down",function() {
var ob = $(this).closest('.item');
ob.insertAfter(ob.next());
});
$(document).on("click",".first",function() {
var ob = $(this).closest('.item');
ob.parent().prepend(ob);
});
$(document).on("click",".last",function() {
var ob = $(this).closest('.item');
ob.parent().append(ob);
});