You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap Table拖拽重排行回调函数无法触发问题求助

问题解决:Bootstrap Table Reorder Rows事件无法触发

你的问题出在混用了Bootstrap Table的Reorder Rows扩展和独立的tableDnD插件,两者的拖拽逻辑冲突,导致Bootstrap Table自带的reorder-row.bs.table事件无法正常触发。

修正步骤:

  1. 移除所有手动调用tableDnD()的代码,Bootstrap Table的Reorder Rows扩展已经内置拖拽功能,不需要额外初始化独立的tableDnD插件。
  2. 通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 15:45:48