是否可以在不拖动的情况下重新排序可排序列表中的项目?例如,如果我有一个项目列表,比如 1、2、3,我单击一个链接(一个按钮 - 随便),列表现在是 3、1、2。也许我不应该为此使用“可排序”?
问问题
183 次
1 回答
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>
于 2013-08-28T13:13:19.307 回答