I am using jQuery's sortable on a tagging plugin, The plugin maintains an array of objects that relate to the li
's in the same order as the actual items.
I need to update the order of the items in the array when the sorting finishes.
I thought I would just be able to in the start event call $(ui).index()
and in the update event call the same which would give me the initial position, and the final position, but both calls return -1
.
How should I do this?
<ul> <li>here<a class="close">x</a></li> <li>are<a class="close">x</a></li> <li>some<a class="close">x</a></li> <li>tags<a class="close">x</a></li> </ul>
Array Structure:
[{ label: 'here', value: 36, element: '$(the li that this info is about)', index: 0 }, { label: 'are', value: 42, element: '$(the li that this info is about)', index: 1 }, { label: 'some', value: 21, element: '$(the li that this info is about)', index: 2 }, { label: 'tags', value: 26, element: '$(the li that this info is about)', index: 3 }]
JavaScript:
$('ul').sortable({ start: function(event, ui){...}, update: function(event, ui){...} });
$(function() { $( "#sortable" ).sortable({ update: function(event, ui) { console.log('update: '+ui.item.index()) }, start: function(event, ui) { console.log('start: ' + ui.item.index()) } }); $( "#sortable" ).disableSelection(); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With