2

据我所知,jQuery UI Sortable 只读取一个指定的属性来序列化或生成一个输出数组,但我真正想要的是检索多个属性并将它们加入一个输出字符串(序列化或数组)。

这是我的 HTML 示例:

<ul id="sort">
<li data-color="red" data-size="small">apple</li>
<li data-color="yellow" data-size="medium">banana</li>
<li data-color="green" data-size="big">watermelon</li>
</ul>

我需要输出两个数据属性的值。我怎样才能做到这一点?

我试图做这样的事情:

$(function() {
$('#sort').sortable().disableSelection();
$("#sort").on( "sortupdate", function( event, ui ) {
    var output = $(this).sortable("toArray", {
        attribute: {"data-color", "data-size"}
    });
    //do something
} );
});

但它不起作用,我猜是因为attribute它不支持数组作为它的值。

4

1 回答 1

2

如何map()将值放在数组中:

$("#sort").on( "sortupdate", function( event, ui ) {
    dataArray = $.map($(this).children('li'), function(el){
        return {'color':$(el).data('color'), 'size':$(el).data('size')}; 
    });
});

JSFiddle

于 2013-10-02T14:24:16.593 回答