jQuery可排序-使用元素';将数据作为属性?
我想使用jQuery可排序-使用元素';将数据作为属性?,jquery,jquery-ui-sortable,Jquery,Jquery Ui Sortable,我想使用sortable(“toArray”)方法。但是,我不想使用元素的id的默认属性。我知道我可以这样做: var arr = ("#my_list").sortable("toArray", { attribute: something_else }); 但我相信这不是数据值,而是元素的正常属性。相反,我希望能够使用我存储在元素本身中的一些数据 例如,我的sortable列表中的一个列表项可能如下所示(使用FireBug查看时……我猜它看起来有点不同): 服务|汉考克 sch_item=
sortable(“toArray”)
方法。但是,我不想使用元素的id
的默认属性。我知道我可以这样做:
var arr = ("#my_list").sortable("toArray", { attribute: something_else });
但我相信这不是数据值,而是元素的正常属性。相反,我希望能够使用我存储在元素本身中的一些数据
例如,我的sortable
列表中的一个列表项可能如下所示(使用FireBug查看时……我猜它看起来有点不同):
服务|汉考克
sch_item=“189”
woID=“R-130109-072”
woType=“R”
title=“服务|汉考克”
backgroundColor=“红色”
pos=“3”
rt_项目=192
因此,通过上面的,我有schu项
,woID
,woType
,标题
,背景色
,pos
,以及rt\u项
。理想情况下,我将能够使用这些数据值中的一个生成一个数组,这样我的数组看起来像这样:[,]
等等
这可能吗 考虑到这一点,有一种方法可以做到。您可以创建自己的迭代器
因此,如果希望在每次对列表排序时生成schu项的排序数组
:
$("#my_list").sortable({
stop: function(event, ui) {
var arrayOfCustomData = [];
$(this).find('li').each(function(index, item) {
arrayOfCustomData[index] = item.data('sch_item');
});
$(this).data('sch_item_sorted',arrayOfCustomData);
}
});
然后,您可以随时使用$(“#mylist”).data('schu item_sorted')检索已排序的列表代码>您的HTML看起来有点错误-那些数据值应该在li标记内?当我在FireBug中查看代码时,数据值不在标记内,而是粘在元素的末尾。好的,我现在明白了。您正在使用.data()
存储元素上的数据,并使用类似FireQuery的插件查看元素。我认为不可能按你的要求去做。您必须将数据作为显式的data-*
属性添加到元素中。例如,
Hmm。。。好的,谢谢你的帮助。
$("#my_list").sortable({
stop: function(event, ui) {
var arrayOfCustomData = [];
$(this).find('li').each(function(index, item) {
arrayOfCustomData[index] = item.data('sch_item');
});
$(this).data('sch_item_sorted',arrayOfCustomData);
}
});