【问题标题】:When using jquery ui sortable, Is there a way to programatically sort by a certain value?使用 jquery ui 可排序时,有没有办法以编程方式按某个值排序?
【发布时间】:2014-07-05 00:47:15
【问题描述】:

我正在使用jquery ui sortable,在我的 dom 元素中,我有一个名为“sortDate”的字段。我不会让人们更改更新此 DOM 元素的日期,我想看看是否有一种好方法可以通过某个 dom 选择器以编程方式对 jquery ui 中的项目进行排序

例如,在下面的代码中,每个可排序项目都有一个名为“itemDate”的跨度。我正在以编程方式更改此值,我想要一种调用 jquery ui 可排序的好方法,并说“按“itemDate”范围中的值重新排序此列表中的所有项目。

 <ul id="sortable">
   <li class="ui-state-default">Item 1<span class="itemDate">1 Apr 2014</span></li>
   <li class="ui-state-default">Item 2<span class="itemDate">21 Apr 2014</span></li>
   <li class="ui-state-default">Item 3<span class="itemDate">11 Apr 2014</span></li>
   <li class="ui-state-default">Item 4<span class="itemDate">2 Apr 2014</span></li>
</ul>

这样的事情是否作为一种禁欲方法存在,还是我必须手动一个一个地手动滚动?

【问题讨论】:

  • 只是想知道答案是否解决了问题.. :)

标签: jquery sorting jquery-ui-sortable


【解决方案1】:

独立于ui-sortable,可以用javascript排序对列表进行排序,然后重新追加排序后的列表:

var list = $('#sortable');  
list.children().sort(function(a,b) {
  var getdat = function(el){return new Date( $(el).children('.itemDate').text())};
  return getdat(a) - getdat(b);
}).appendTo(list);

jsbin example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-07
    • 2020-02-01
    • 2019-08-18
    • 2015-12-31
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多