Jquery可排序机智未定义的列表数量

时间:2012-11-15 05:24:58

标签: php javascript jquery jquery-ui-sortable

我有一个从数据库中检索的列表。 列表的数量是未定义的,因为它们来自数据库。 这些列表可以拖到其他列表中。 这是代码

<?php while(..condition..){ ?>
<ul id="test-list-sub<?=$x?>" class="connectedSortable2" style="padding-bottom:10px;">
  <li id="listItemSub_<?=$row['id']?>">
    <table>...content here...</table>
  </li>
</ul>
<?php $x++; } //end while ?>

的Javascript

for(var y=0; y<<?=$x?>; y++){

    $("#test-list-sub"+y).sortable({
      handle : '.handle',
      connectWith: ".connectedSortable2",
      update : function () {
          var order = $("#test-list-sub"+y).sortable('serialize');
          alert(order);
        //$("#info2").load("process-sortable.php?"+order+"&panel=2");
      }
    });

}

此过程有效,但问题是当我尝试获取列表项时 [对象] [对象]但是当我尝试更改

var order = $("#test-list-sub"+y).sortable('serialize');

var order = $("#test-list-sub0").sortable('serialize'); //or any number 0-number of lists

我得到了价值。似乎在sortable的'update'部分中传递的'value y'是y的最后一个值。我该怎么做才能从列表中获取值?

1 个答案:

答案 0 :(得分:0)

找到答案

$('.connectedSortable2').each(function() {
        var pid = $(this).attr('id').split('_')[1];
        $("#test-list-sub_"+pid).sortable({
          handle : '.handle',
          connectWith: ".connectedSortable2",
          update : function () {
              var order = $("#test-list-sub_"+pid).sortable('serialize');
              alert(order);
            //$("#info2").load("process-sortable.php?"+order+"&panel=2");
          }
        });
    });

我使用了每个函数来获取它们。因为他们有同一个班级。 答案来自jquery sortable > nested uls