2012-01-05 9 views
13

htmlテーブルでは、すべての行に独自の位置番号を持つセルがあります。 jQueryUIでソートした後、この位置番号を正しく更新するにはどうすればよいですか?jQuery uiソート可能なtablerowsは、番号の位置をリフレッシュする

<table border="0"> 
<thead> 
     <tr> 
     <th scope="col">Position number</th> 
     <th scope="col">Name</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
     <td>1</td> 
     <td>Text</td> 
     </tr> 
     <tr> 
     <td>2</td> 
     <td>Text</td> 
     </tr> 
    </tbody>   
</table> 

そして、これが私のjsです:

これは私の単純なHTMLである

var fixHelper = function(e, ui) { ui.children().each(function() { $(this).width($(this).width()); }); return ui; }; 

    $("table tbody").sortable({ 
     helper: fixHelper 
    }).disableSelection(); 

今、私は正しく、完全なソート後に数値を配置順序を変更したいと思います。

どうすればいいですか?

ご協力いただければ幸いです。

答えて

22

あなたが(未テスト)試すことができます。..

$("table tbody").sortable({ 
    update: function(event, ui) { 
     $('table tr').each(function() { 
      $(this).children('td:first-child').html($(this).index()) 
     }); 
    }, 
    helper: fixHelper 
}).disableSelection(); 

をソートした後、次の操作を行います。代わりに$('table tr').each使用の $(this).parents('table').find('tr').each

説明.. それはテーブル内trタグのそれぞれをループして、インデックス値がtrtd-childの内容を変更します

+2

ありがとう、良い答えと良い説明、それは完璧に動作します。 私はあなたの答えを受け入れて投票します、あなたは私の質問にも同じことをすることができます。どうもありがとう! – bobighorus

+2

私にも助けられました - すばらしい回答と質問 – cantera

2

誰かがaboを好きならば私がしたように、答えは、ここには、Coffeescriptです

jQuery -> 
    $("ul.sortableEdit").sortable 
      stop: (event, ui) -> 
      $('ul.sortableEdit li').each(-> 
       $(this).children('input.sortableItemPos').val($(this).index()) 
      ) 
関連する問題