javascript - TableDnD onDrop 事件未触发

标签 javascript jquery tablednd

我敢肯定这很简单,通常是这样。

$('#sort-table').tableDnD({
    onDragClass: "dnd_drag",
    onDragStart: function(table, row) {
        console.log("start drag");
    },
    onDrop: function(table, row) {
        console.log($.tableDnD.serialize());
    },
    dragHandle: ".dragHandle"
});

我有上面的代码用于 tableDnD,jQuery 表格排序插件。这是他们提供的样本中的确切代码,但是当我将一个项目放到表中时,它不会正确触发 onDrop 事件。我在控制台中没有任何反应。表格确实初始化了,拖动 handle 工作正常,所以我至少知道那部分代码是正确的。我唯一无法开始工作的是 onDrop 命令。

更新:
我更新了上面的代码以添加一个 onDragStart 和 onDragClass,它们都工作得很好,只是 onDrop 函数失败了。

这是我的一般表格布局:

<table id="sort-table">
    <tbody class="sort-items">
        <tr class="1">
            <td class="dragHandle"></td>
            ...
        </tr>
        ...
    </tbody>
</table>

最佳答案

您必须定义 tr[id] 属性才能使 onDrop 工作。 这是因为 onDrop 仅在行顺序更改时触发。 但是,如果不指定 tr[id] 属性,tableDnD.serialize() 将认为没有任何重新排序。 (肯定是错误)

关于javascript - TableDnD onDrop 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11765366/

相关文章:

javascript - 获取数组中的最后 x 元素不起作用

javascript - 追加到容器 div

jquery - 即使按钮未被点击也会触发 click 事件

javascript - 使用 javascript 更改表行名称属性

javascript - 如何获取父对象的函数(NodeJS模块)

java - 使用 jackson json 将属性添加到 json 字符串

javascript - Launchpad 标题后退按钮的事件处理程序

javascript - Angular ui-router 嵌套路由在带有 babel 的 ES6 中不起作用?

jquery - 表拖放 JQuery 插件 - 如何取消初始化?