基于动态数据属性的jQuery排序函数
我正在使用sort函数对div进行数字排序(1-2-3) 数组(存储\u ID与下面我的代码不同): 这将动态更新数据顺序属性值:基于动态数据属性的jQuery排序函数,jquery,sorting,attributes,Jquery,Sorting,Attributes,我正在使用sort函数对div进行数字排序(1-2-3) 数组(存储\u ID与下面我的代码不同): 这将动态更新数据顺序属性值: <div id="store_list"> <div class="store_item store_item_11" data-order="1">1</div> <div class="store_item store_item_22" data-order="3">3</div>
<div id="store_list">
<div class="store_item store_item_11" data-order="1">1</div>
<div class="store_item store_item_22" data-order="3">3</div>
<div class="store_item store_item_21" data-order="2">2</div>
</div>
1.
3.
2.
现在,当我重新运行sortByShop_reOrder()时,它不会对我的div重新排序(1-2-3),它只是保持不变(1-3-2)
有什么想法吗?函数是否没有看到更新的数据顺序值?使用,因为您按.data()排序:
例如:
函数sortByShop\u reOrder(){
$('#store_list.store_item').sort(函数(a,b){
返回$(a).data('order')-$(b).data('order');
}).appendTo(“#存储列表”);
}
函数demoAJAX(dataArr){
$。每个(数据阵列、功能(i、obj){
$('.store\u item\u'+obj.store\u id).data('order',obj.store\u order);
});
sortByShop_reOrder()
}
sortByShop_reOrder();//立即行动,然后。。。
setTimeout(函数(){//4秒后
德莫阿贾克斯([
{“存储顺序”:“1”,“存储id”:“11”},
{“存储顺序”:“2”,“存储id”:“21”},
{“存储顺序”:“3”,“存储id”:“22”}
])
}, 4000);代码>
2.
3.
1.
使用,因为您按.data()排序。
:
例如:
函数sortByShop\u reOrder(){
$('#store_list.store_item').sort(函数(a,b){
返回$(a).data('order')-$(b).data('order');
}).appendTo(“#存储列表”);
}
函数demoAJAX(dataArr){
$。每个(数据阵列、功能(i、obj){
$('.store\u item\u'+obj.store\u id).data('order',obj.store\u order);
});
sortByShop_reOrder()
}
sortByShop_reOrder();//立即行动,然后。。。
setTimeout(函数(){//4秒后
德莫阿贾克斯([
{“存储顺序”:“1”,“存储id”:“11”},
{“存储顺序”:“2”,“存储id”:“21”},
{“存储顺序”:“3”,“存储id”:“22”}
])
}, 4000);代码>
2.
3.
1.
wupps拼写错误..问题仍然存在的任何人,因为您的sortByShop\u重新排序
工作得很好,为什么不展示一下你对它的称呼——在你所谓的动态属性改变之后?无法复制:@RokoC.Buljan我已经更新了我的question@RokoC.Buljan我上传了一个屏幕截图-store_ID与我在问题中的ID不同,但是你知道它返回的数据是什么,这是拼写错误..不管是谁,这个问题仍然存在由于您的sortByShop\u reOrder
工作得很好,为什么不展示一下你对它的称呼——在你所谓的动态属性改变之后?无法复制:@RokoC.Buljan我已经更新了我的question@RokoC.Buljan我上传了一个屏幕截图-store_ID与我在问题中遇到的不同,但是你知道它返回了什么数据,这就成功了!很多很多!谢谢你这么耐心!花点时间帮你,我送你一杯虚拟啤酒!成功了!很多很多!谢谢你这么耐心!花点时间帮你,我送你一杯虚拟啤酒!
$.ajax({
type:"POST",
url: "someURL",
dataType: 'json',
data: "data=random",
success:function(data) {
var array = data;
$.each(array, function (i) {
var store_order = array[i]['store_order'];
var store_id = array[i]['store_id'];
$('.store_item_'+store_id).attr('data-order', store_order);
});
sortByShop_reOrder()
}
})
<div id="store_list">
<div class="store_item store_item_11" data-order="1">1</div>
<div class="store_item store_item_22" data-order="3">3</div>
<div class="store_item store_item_21" data-order="2">2</div>
</div>
$.each(dataArr, function(i, obj) {
$('.store_item_' + obj.store_id).data('order', obj.store_order); // Update data
});
sortByShop_reOrder(); // sort by data