0

是否可以在不拖动的情况下重新排序可排序列表中的项目?例如,如果我有一个项目列表,比如 1、2、3,我单击一个链接(一个按钮 - 随便),列表现在是 3、1、2。也许我不应该为此使用“可排序”?

4

1 回答 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 回答