Я хочу вывести некоторые данные из базы данных в таблицу HTML, и я хочу, чтобы пользователь мог изменять порядок строк таблицы. Для этого я использовал jQuery UI sortable, таким образом:
<script>
$(function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
});
</script>
<?php
while($row = mysql_fetch_assoc($co_authors)) {
echo "<tr id='sortable'><td>{$row['author_email']}</td>
<td>{$row['coauthor_level']}</td>";
<td><button class='remove' id='remove' name='remove' email="<?php echo $row['author_email'] ?>"
paper="<?php echo $row['paper_id'] ?>">Remove</button></td>
</tr>";
}
?>
Проблема в том, что когда я перетаскиваю таблицу tr
, td
перетаскиваются только . Кроме того, что наиболее важно, можно перетаскивать только первую строку: эффект не применяется к другим строкам. Как я могу это решить?
jquery
jquery-ui
html-table
jquery-ui-sortable
Самер Эль Генди
источник
источник
id
атрибуты должны быть уникальными в пределах документа. Ваш код создает несколько элементов с помощью sameid
(sortable
). Попробуйтеclass
вместо этого использовать.td
s сcontenteditable
атрибутом не кажутся редактируемыми, если их строка может быть отсортирована с помощью этого метода. Просто к вашему сведению.Ответы:
Вы можете вызывать
sortable
a<tbody>
вместо отдельных строк.<table> <tbody> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr> <tr> <td>5</td> <td>6</td> </tr> </tbody> </table> <script> $('tbody').sortable(); </script>
Показать фрагмент кода
$(function() { $( "tbody" ).sortable(); });
table { border-spacing: collapse; border-spacing: 0; } td { width: 50px; height: 25px; border: 1px solid black; }
<link href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css" rel="stylesheet"> <script src="//code.jquery.com/jquery-1.11.1.js"></script> <script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script> <table> <tbody> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr> <tr> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> </tr> <tr> <td>9</td> <td>10</td> </tr> </tbody> </table>
источник
<tbody>
на</tbody>
;)