自由调整table每列的位置
时间: 2023-10-07 07:11:05 浏览: 96
要实现自由调整表格每列的位置,您可以使用jQuery UI库中的sortable插件。该插件可以让您通过拖拽来交换元素的位置,从而实现表格每列的自由调整。
以下是一个简单的示例代码,用于对表格中的列进行排序:
```html
<!DOCTYPE html>
<html>
<head>
<title>Sortable Columns Demo</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<style>
table {
border-collapse: collapse;
}
td, th {
border: 1px solid black;
padding: 5px;
}
</style>
</head>
<body>
<table id="sortable-table">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
<th>Column 4</th>
</tr>
</thead>
<tbody>
<tr>
<td>1-1</td>
<td>1-2</td>
<td>1-3</td>
<td>1-4</td>
</tr>
<tr>
<td>2-1</td>
<td>2-2</td>
<td>2-3</td>
<td>2-4</td>
</tr>
<tr>
<td>3-1</td>
<td>3-2</td>
<td>3-3</td>
<td>3-4</td>
</tr>
</tbody>
</table>
<script src="//code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$(function() {
$("#sortable-table tbody").sortable({
axis: "x",
handle: "th",
helper: function(e, ui) {
ui.children().each(function() {
$(this).width($(this).width());
});
return ui;
},
stop: function(e, ui) {
$(this).find('tr').each(function() {
var $tds = $(this).children('td');
ui.item.children('th').each(function(i) {
$(this).insertBefore($tds.eq(i));
});
});
}
}).disableSelection();
});
</script>
</body>
</html>
```
在这个示例中,我们使用了jQuery UI库中的sortable()方法来实现对表格列的排序。我们指定了axis选项为"x",表示只能在水平方向上拖拽,同时指定了handle选项为"th",表示只能通过表头进行拖拽。我们还使用了helper选项来指定拖拽时的辅助元素,这里使用了原始元素的宽度来设置辅助元素的宽度,以确保它们的大小相同。最后,我们在stop事件中获取每行的td元素,然后将拖拽的表头插入到相应的位置上,从而完成了表格列的排序。
您可以根据自己的需求进行相应的修改和调整,以满足您的具体需求。
阅读全文