bs table实现拖拽一行到其他行的位置
时间: 2023-11-27 10:51:24 浏览: 29
你可以使用 `sortable` 插件来实现 `bootstrap table` 的拖拽排序功能。
首先,在你的 HTML 文件中引入 `sortable` 插件的 CSS 和 JS 文件,如下所示:
```html
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.10.2/Sortable.min.css" integrity="sha512-D3XK+CEkEK6O5L9F+RvB4RfVnXq0xWkZzOgT+K+JW4lWZQvNj4Y6Ph+Jc1lA5A6UyHmzKQZwI3e8zvHQGq7nDg==" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.10.2/Sortable.min.js" integrity="sha512-9Gv5QaGfzZxwTgJk8q9Q1h0gH+/o7Iz0oztD+40ZKZgNNzQ2gq1cGxMgZk5MfMm8a1X6zH8Qz6Yiq9v5cYV8/g==" crossorigin="anonymous"></script>
```
然后,在你的 `bootstrap table` 中添加 `data-sortable="true"` 属性,并将每行的 `data-id` 设置为唯一标识符。例如:
```html
<table class="table table-striped" data-sortable="true">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr data-id="1">
<td>1</td>
<td>John</td>
<td>john@example.com</td>
</tr>
<tr data-id="2">
<td>2</td>
<td>Jane</td>
<td>jane@example.com</td>
</tr>
<tr data-id="3">
<td>3</td>
<td>Mike</td>
<td>mike@example.com</td>
</tr>
</tbody>
</table>
```
最后,在你的 JS 文件中初始化 `sortable` 插件,并设置 `onEnd` 回调函数来处理排序后的数据。例如:
```javascript
$(function() {
$('table[data-sortable="true"]').each(function() {
var $table = $(this);
Sortable.create(this, {
onEnd: function() {
var data = [];
$table.find('tbody tr').each(function() {
data.push({
id: $(this).data('id'),
name: $(this).find('td:nth-child(2)').text(),
email: $(this).find('td:nth-child(3)').text()
});
});
// 处理排序后的数据
console.log(data);
}
});
});
});
```
现在,你就可以通过拖拽 `bootstrap table` 的行来实现排序了。排序后的数据将通过 `onEnd` 回调函数传递给你的处理代码。