在“更新”回调中,您可以使用$(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>
...
答案 0 :(得分:36)
截至2012年8月,这是直接在jQuery UI中实现的:
var order = $(this).sortable('toArray', {attribute: 'data-myattr'});
答案 1 :(得分:4)
$("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);
}
});
答案 2 :(得分:0)
$("li").data("myattr") // if you use jQuery, >= 1.4.3
$("li").attr("data-myattr") // for erlier
JS小提琴here