使用jQuery UI Sortable交换数据属性排序
Swap data attributes sorting with jQuery UI Sortable
我有一个列表,它是用与排序顺序相关的每个列表项上的数据属性设置的
<ul class="sortable">
<li data-id="1" data-sort="1">
Item
</li>
<li data-id="4" data-sort="2">
Item
</li>
<li data-id="12" data-sort="3">
Item
<ul class="sortable">
<li data-id="3" data-sort="4">
Item
</li>
<li data-id="7" data-sort="5">
Item
</li>
<li data-id="15" data-sort="6">
Item
</li>
<li data-id="9" data-sort="7">
Item
</li>
</ul>
</li>
</ul>
您可以使用jQuery UI排序来重新排序。。。
但是,当用户更改顺序时,我希望数据排序属性互换,以便它们保持一致的排序顺序,同时仍然保持其原始数据id。
我试着打乱索引,但由于我在UL中有UL,所以每个列表的索引都会重置。然而,你可以在我的代码中看到,排序顺序在整个主UL中是一致的。
$(".sortable").sortable({
start: function (event, ui) {
var start_sort = $(ui.item).data("sort"));
},
stop: function (event, ui) {
// code ??
},
receive : function(event, ui) {
// code ??
}
}).disableSelection();
任何意见都将不胜感激。我可能对此没有正确的想法。。。
您可以不使用index()
,而只为每个循环并使用循环索引。
$(".sortable").sortable({
update: function(e,ui) {
$('.sortable li').each(function(index, value) {
$(this).attr("data-sort", index+1);
});
},
start: // rest of your code
}).disableSelection();
打开控制台并测试:https://jsfiddle.net/r62r0b26/
相关文章:
- 序列化数据属性中对象的最可靠方法
- jQuery最近父级的数据属性选择器
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 数据属性仅在切换设备模式下工作
- 函数jquery.html()不提供数据属性集值
- 在数据属性上进行下拉自动选择
- 数据表排序但对行进行分组
- JavaScript-获取数据属性的值返回未定义的值
- 如何替换数据属性中的特定字符串单词
- jQuery TinySort按数据属性排序和放置
- 根据不同长度的数据属性对无序列表中的 li 进行排序(无 jquery)
- 对数据属性进行排序
- 根据数据属性WITH Jquery的数值对元素进行排序
- JQuery,使用数据属性对瓦片数组进行排序
- 按数据属性对页面上的锚点列表进行排序
- 使用jQuery UI Sortable交换数据属性排序
- 使用jQuery使用数据属性排序元素
- 按数据属性排序列表项,先按字母顺序排序,然后按数字排序
- 如何根据数据属性的数值对元素进行排序?
- 如何使用JS根据数据属性中的值对元素进行排序