Javascript jQuery中的自定义数据是否可排序?
在“update”回调中,您可以使用Javascript jQuery中的自定义数据是否可排序?,javascript,jquery,jquery-ui-sortable,Javascript,Jquery,Jquery Ui Sortable,在“update”回调中,您可以使用$(this.sortable('toArray')获得元素的顺序 但是这个顺序包含元素ID 如何获取自定义属性,如data myattr?我希望该顺序包含来自此attibute的值,而不是ID $('ul').sortable({ handle: 'h2' items: 'li', context: this, update: function(){ var order = $(t
$(this.sortable('toArray')获得元素的顺序代码>
但是这个顺序包含元素ID
如何获取自定义属性,如data myattr
?我希望该顺序包含来自此attibute的值,而不是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>
...
-
...
...
JS小提琴$(“ul”)。可排序({
.
.
.
更新:函数(事件,ui){
var arr=$(this.sortable('toArray');
变量i,n;
var attrs=[];
对于(i=0,n=arr.length;i
从2012年8月起,这将直接在jQuery UI中实现:
var order = $(this).sortable('toArray', {attribute: 'data-myattr'});
我想我的JSBin脚本中有一个虚拟元素——我已经删除了它。唯一的缺点是,如果元素上没有ID属性,那么这将不起作用:)这可能是一个jQuery UI功能请求……好吧,我阅读了代码,现在它实际上已经实现了!请把我下面的答案投上一票。@Alper我真的希望你永远不要再推荐data
使用。。。正如您在这个单元测试()中看到的,数据速度很慢……使用prop,因为它更快(或者使用更快的原生js)。这是正确的答案。
$("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);
}
});
var order = $(this).sortable('toArray', {attribute: 'data-myattr'});