2012-01-05 34 views
13

içinde numara konumunu yenile html tablosunda her satırda kendi konum numarasına sahip bir hücreye sahibim. JQueryUI ile sıraladıktan sonra bu konum numarasını nasıl doğru bir şekilde yenileyebilirim?jQuery ui sortable tablesrows

Bu benim basit html geçerli:

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

Ve bu benim js geçerli:

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

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

Şimdi doğru sırasını değiştirmek komple sıralama sonra sayı değerlerini yerleştirmek istiyorum.

Bunu nasıl yapabilirim?

Herhangi bir yardım

mutluluk duyacağız.

cevap

22

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

sen (denenmemiş) deneyebilirsiniz .. sıraladıktan sonra aşağıdakileri yapın: yerine kullanılması $(this).parents('table').find('tr').each

Açıklama .. $('table tr').each It tablo içinde tr etiketleri aracılığıyla döngüsü ve sonra ilk td-child içeriğini tr

+2

Çok teşekkür ederim, iyi cevaplar ve iyi bir açıklama, mükemmel çalışıyor. Cevabınızı kabul ediyorum ve oy verin, isterseniz sormak için de aynısını yapabilirsiniz. Çok teşekkürler! – bobighorus

+2

Bana da yardımcı oldu - harika yanıt ve soru – cantera

2

'un endeks değeri ile değiştirir. ve benim yaptığım gibi, buradaki coffeescript

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