JQuery ui sortable tablerows обновить номер позиции внутри
В таблице html у меня есть в каждой строке ячейка со своим собственным номером позиции. Как правильно обновить этот номер позиции после сортировки с помощью jQueryUI?
Это мой простой html:
<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:
var fixHelper = function(e, ui) { ui.children().each(function() { $(this).width($(this).width()); }); return ui; };
$("table tbody").sortable({
helper: fixHelper
}).disableSelection();
Теперь я хотел бы правильно изменить порядковые номера позиций после полной сортировки.
Как я могу это сделать?
Любая помощь будет оценена.
Ответы
Ответ 1
Сделайте следующее после сортировки.
$("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
в таблице и затем меняет содержимое первого td-child
на значение индекса tr
Ответ 2
Если кому-то понравился вышеупомянутый ответ, как я, здесь Coffeescript
jQuery ->
$("ul.sortableEdit").sortable
stop: (event, ui) ->
$('ul.sortableEdit li').each( ->
$(this).children('input.sortableItemPos').val($(this).index())
)