2012-11-15 59 views
1

我有一個正在從數據庫中檢索的列表。 列表的數量是未定義的,因爲它們來自數據庫。 這些列表可以拖到其他列表。 這裏是代碼Jquery Sortable wit undefined number of lists

<?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 

我得到的價值。似乎在'可更新'部分中傳遞的'值y'是y的最後一個值。我應該怎麼做才能從列表中獲得價值?

回答

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