Bootstrap Table拖拽重排行回调函数无法触发问题求助
问题解决:Bootstrap Table Reorder Rows事件无法触发
你的问题出在混用了Bootstrap Table的Reorder Rows扩展和独立的tableDnD插件,两者的拖拽逻辑冲突,导致Bootstrap Table自带的reorder-row.bs.table事件无法正常触发。
修正步骤:
- 移除所有手动调用
tableDnD()的代码,Bootstrap Table的Reorder Rows扩展已经内置拖拽功能,不需要额外初始化独立的tableDnD插件。 - 通过Bootstrap Table的官方初始化方法开启重排行功能,并正确绑定事件/配置回调。
修正后的代码示例:
$(function () { // 初始化Bootstrap Table并启用重排行 $('#table').bootstrapTable({ // 这里填入你的表格基础配置(列定义、数据源等) reorderRows: true, // 必须开启这个选项启用重排行扩展 reorderRowsAnimation: true, // 可选,开启拖拽动画 // 方式1:直接在配置中设置回调函数 onReorderRow: function (newData, draggedRow, oldIndex) { alert('重排完成'); // 在这里执行你后续需要调用的函数 } }); // 方式2:用事件绑定(二选一即可) /* $('#table').on('reorder-row.bs.table', function (e, newData, draggedRow, oldIndex) { alert('重排完成'); // 后续函数调用逻辑 }); */ });
关键注意点:
- 必须确保表格是通过
bootstrapTable()方法初始化的,而不是单独调用tableDnD(),后者会破坏Bootstrap Table的重排事件机制。 reorder-row.bs.table事件的参数顺序是:重排后的完整数据、被拖动的行数据、原位置索引,不要搞错参数顺序。- 移除
$(document).change()中的tableDnD()调用,这个操作完全多余,还会干扰表格的正常逻辑。
内容的提问来源于stack exchange,提问作者alsanmph
相关产品推荐
相关产品推荐

