jQuery中的自定义数据可排序

Custom data in jQuery sortable?

本文关键字:排序 数据 自定义 jQuery      更新时间:2023-09-26

在"update"回调中,您可以使用$(this).sortable('toArray'); 获得元素的顺序

但此顺序包含元素ID。

如何获得自定义属性,如data-myattr?我希望该订单包含来自该属性的值,而不是ID。。。。

   $('ul').sortable({
     handle: 'h2'
     items: 'li',
     context: this,
     update: function(){        
       var order = $(this).sortable('toArray');
       // here I want a array of values from my attribute, not ID values...
       alert(order);
       ....
     }
   });

HTML很简单:

<ul>
  <li data-myattr="a-1" id="whatever">
    ...
  </li>
  ...

截至12年8月,这是在jQuery UI:中直接实现的

var order = $(this).sortable('toArray', {attribute: 'data-myattr'});
$("ul").sortable({
  .
  .
  .
  update: function(event, ui) {        
    var arr = $(this).sortable('toArray');
    var i, n;
    var attrs = [];
    for (i = 0, n = arr.length; i < n; i++) {
      attrs.push($('#' + arr[i]).data('myattr'));
    }
    alert(attrs);  
  }
});
$("li").data("myattr") // if you use jQuery, >= 1.4.3
$("li").attr("data-myattr") // for erlier

JS Fiddle here