Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于动态数据属性的jQuery排序函数_Jquery_Sorting_Attributes - Fatal编程技术网

基于动态数据属性的jQuery排序函数

基于动态数据属性的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>

我正在使用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 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