jquery-ui.js 实现对table列的拖拽排序
时间: 2023-11-27 09:03:09 浏览: 164
jquery-ui-table:jQuery UI 表包装器提供 x 和 y 轴滚动以及可调整大小的标题
可以使用jquery-ui.js中的sortable方法来实现对table列的拖拽排序。
首先,需要给table的thead或tbody添加一个class,例如"sortable",然后使用如下代码初始化sortable方法:
```
$(".sortable").sortable({
items: "> tr",
axis: "y",
cursor: "move",
handle: ".handle",
helper: function(e, tr) {
var originals = tr.children();
var helper = tr.clone();
helper.children().each(function(index) {
$(this).width(originals.eq(index).width())
});
return helper;
},
stop: function(e, ui) {
$("tr", this).each(function() {
var row = $(this);
var originalIndex = row.index();
var newIndex = row.parent().children().index(row);
if (originalIndex !== newIndex) {
// 重新排序后的逻辑代码
}
});
}
}).disableSelection();
```
其中,items指定拖拽的元素,这里指定为tr;axis指定拖拽的方向,这里指定为y轴;handle指定拖拽的手柄,这里使用了一个class为"handle"的元素作为手柄;helper指定拖拽时的helper元素,这里使用了一个与原元素相同的clone元素;stop事件中可以获取到拖拽结束后的新旧位置,可以在这里编写重新排序后的逻辑代码。
需要注意的是,如果要使用sortable对table进行拖拽排序,需要保证每一列的宽度相同,否则可能会出现错位的情况。
阅读全文