2015-05-29 51 views
4

我的HTML代碼HTML錶行跨度重新排序項拖放問題

<table border='1px' id='sort'> 
    <thead> 
     <tr> 
      <th>SL</th> 
      <th>Sub Group</th> 
      <th>Description</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td rowspan='3'>1</td> 
      <td rowspan='3'>Fruit</td> 
      <td>Mango</td> 
     </tr> 
     <tr> 
      <td>Orange</td> 
     </tr> 
     <tr> 
      <td>pineapple</td> 
     </tr> 
     <tr> 
      <td rowspan='2'>2</td> 
      <td rowspan='2'>Flower</td> 
      <td>Rose</td> 
     </tr> 
     <tr> 
      <td>sunflower</td> 
     </tr> 
    </tbody> 
</table> 

和js

var fixHelperModified = function(e, tr) { 
    var $originals = tr.children(); 
    var $helper = tr.clone(); 
    $helper.children().each(function(index) { 
     $(this).width($originals.eq(index).width()) 
    }); 
    return $helper; 
}, 
    updateIndex = function(e, ui) { 
     $('td.index', ui.item.parent()).each(function (i) { 
      $(this).html(i + 1); 
     }); 
    }; 

$("#sort tbody").sortable({ 
    helper: fixHelperModified, 
    stop: updateIndex 
}).disableSelection(); 

我只想重新排序亞羣,如水果芒果,橙子或向日葵,玫瑰不表中的主要組。 工作小提琴是http://jsfiddle.net/p6c814o6/。如何解決這個問題。謝謝。

+0

難道你不能只是讓1表格單元格,然後在該單元格中的可排序列表? – rst

+0

這是個好主意。但是當我添加一個像「芒果類型」這樣的新子組時,它將更難以顯示,並且行跨度值實際上來自數據庫。這就是爲什麼我想保持這一點。謝謝。 –

回答

2

試試這個:

我已經更新了你的提琴JsFiddle。根據你的代碼,你的html是錯誤的。你必須檢查你的新的HTML。 而不是使用rowspans你必須去嵌套表來實現它。

<table border='1px' id='sort'> 
    <thead> 
     <tr> 
      <th>SL</th> 
      <th>Sub Group</th> 
      <th>Description</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td >1</td> 
      <td >Fruit</td> 
      <td><table> 
       <tr> 
      <td>Mango</td> 
     </tr> 
       <tr> 
      <td>Orange</td> 
     </tr> 
     <tr> 
      <td>pineapple</td> 
     </tr></td> 
     </tr> 
     </table> 
     <tr> 
      <td >2</td> 
      <td >Flower</td> 
      <td><table> 
       <tr> 
        <td> 
       Rose 
        </td> 
       </tr> 
      <tr> 
      <td>sunflower</td> 
     </tr> 
       </table> 
      </td> 

    </tbody> 
</table> 

查看更新的小提琴。如果這是你需要的。 希望這可以幫助JsFiddleUpdated

+0

謝謝,但我想只重新排序嵌套表而不是主表。那是我的要求。 –

+0

@try_simple_code我已經更新了小提琴。現在檢查 –

+0

謝謝。最後一個問題,如何使用'td'獲取嵌套表'索引',以便通過ajax請求在數據庫中更新它。我嘗試了'$(「#sort tbody tr td> table tbody」).sortable(「serialize」,{key:'td'});'這不起作用 –