使用Jquery .sortable同时对两个javascript数组进行排序

时间:2018-03-18 07:29:16

标签: javascript jquery jquery-ui-sortable

我有一个Js数组 picInfos 和html列表。每个数组和列表元素彼此对应。我想用 list 同时对 picInfos 数组进行排序,这是按jQuery可排序函数排序的。

var picInfos = [];

$(document).ready(function() {
function readURL(input) {
    var $selected_images_list = $('.selected_images_list ul');
if (input.files) {
  var picInfo = [];
  for (var o = 0; o < input.files.length; o++) {
    var reader = new FileReader();
    reader.onload = function(e) {
      $selected_images_list.append(
        '<li>' +
        '<div class="img_wrapper">' +
        '<img src=' + e.target.result + ' alt="">' +
        '</div>' +
        '</li>');
      picInfo.push(e.target.result);
    }
    reader.readAsDataURL(input.files[o]);
    picInfo.push(input.files[o].name);

     }
    picInfos.push(picInfo);
   }
  }

 $(function() {
  $(".selected_images_list ul").sortable({
   connectWith: $(this).find('li')
  }).disableSelection();
 });

1 个答案:

答案 0 :(得分:0)

您应该使用可排序的change事件,这会在更改排序列表时发生。您需要在列表更改

上重新构建 picInfos 数组
$(function() {
  $(".selected_images_list ul").sortable({
    connectWith: $(this).find('li'),
    change: function (event, ui) {
      // here your the code that re-builds the array
    }
  }).disableSelection();
});