是否可以重新排序可排序列表中的项目而不拖动它们? 例如,如果我有一个项目列表,比如1,2,3,我点击一个链接(一个按钮 - 无论如何),列表现在是3,1,2。 也许我不应该为此使用“可排序”?
答案 0 :(得分:0)
假设您有以下HTML:
<ul id="sortable" class="ui-sortable">
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
<li class="ui-state-default" style=""><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li><li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li><li class="ui-state-default" style=""><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
<li class="ui-state-default" style=""><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li><li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>
</ul>
您可以通过调用以下函数来重新排序列表项而不拖放:
function shuffle(){
var myList = $('ul'); //Fetch the list.
var listItems = myList.children('li'); //Extract all listItems from it.
listItems.sort(function(a,b){ //This function sorts the items.
var compA = $(a).text().toUpperCase();
var compB = $(b).text().toUpperCase();
return (compA < compB) ? -1 : 1; //return a -1 or 1 depending upon specific condition.
});
$(myList).append(listItems);
}
您可以使用任何简单的按钮调用该功能,例如:
<button onclick="shuffle();">Reorder</button>