Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

get the start position of an item using the jquery ui sortable plugin

I am using the jQuery UI sortable plugin and I am trying to get 2 alerts

I want the staring position of the element and the finished position of the element.

$(function() {
    $("#filterlist ul").sortable({ opacity: 0.6, cursor: 'move', update: function(event, ui) {
            alert(ui.item.prevAll().length + 1);
        }
    });
});

I can get the position of the item after it has been dragged by using:-

ui.item.prevAll().length + 1

What do I use to get the position it started from?

like image 439
Rippo Avatar asked Apr 12 '10 08:04

Rippo


2 Answers

$(function() {

    $("#sortable").sortable({
       start: function(event, ui) { console.log('before @ '+ ui.item.index()) },
       update: function(event, ui) { console.log('now @ '+ ui.item.index()) }
    });

});​

try this demo and watch at the console...

like image 79
Reigel Avatar answered Oct 31 '22 14:10

Reigel


Use the start event and "cache" the starting position

var start;
$(function() {
    $("#filterlist ul").sortable({
        opacity: 0.6,
        cursor: 'move',
        start: function(event, ui) {
            start = ui.item.prevAll().length + 1;
        },
        update: function(event, ui) {
            alert(start + " -> " + (ui.item.prevAll().length + 1));
        }
    });
})
like image 10
jitter Avatar answered Oct 31 '22 15:10

jitter