当我根据列表中的顺序创建列表中的元素时,我试图重新排序列表中元素的元素。
var CACHES = ["WayBack Machine", "Google Cache", "Coral CDN"];
var HTML = ["Google Cache", "WayBack Machine", "Coral CDN"];
$("#sortable").sortable({
stop: function(event, ui) {
console.log("New position: " + ui.item.index());
},
change: function(event, ui) {
// When the item postion is changed while dragging a item, I want it's position
console.log("New position: " + ui.item.index());
},
create: function(event, ui) {
console.log("Sortable Created");
var ul = $('#sortable');
var li = ul.children('li').get();
li.sort(function(a,b) {
$(a).attr('id')
var value = CACHES.indexOf($(a).attr('id')) < CACHES.indexOf($(b).attr('id')) ? 1 : -1
console.log(value)
return value
});
ul.append(li);
}
});
var HTML是它们在页面HTML中的顺序。 var CACHES是我想要它们的顺序。它似乎对元素重新排序,但不正确。
答案 0 :(得分:1)
http://www.w3schools.com/jsref/jsref_sort.asp
使用 - 而不是&lt;和三元
var value = CACHES.indexOf($(a).attr('id')) - CACHES.indexOf($(b).attr('id'));