【问题标题】:jquery sortable, changing sequence of itemsjquery可排序,更改项目顺序
【发布时间】:2013-08-28 13:08:47
【问题描述】:

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

【问题讨论】:

    标签: jquery-ui jquery-ui-sortable


    【解决方案1】:

    假设您有以下 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>
    

    You can see a sample implementation here.

    【讨论】:

      猜你喜欢
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      相关资源
      最近更新 更多