1

jquery.tablednd.0.7.min.js用来拖放表格行。当我在表中动态添加新行(即使用 javascript 添加行)时,新行没有拖放。可以拖动表格中已经存在的其他行。

我认为这个新行没有与 jQuery 拖放代码同步。

我正在添加这样的新

是 jquery dragnDrop 文件代码。

在页面加载时,我正在使用此代码将此功能分配给表

$(document).ready(function() {
    $("#tableId").tableDnD({
        onDragClass : "myDragClass",
        onDrop : function(table, row) {

        },
        onDragStart : function(table, row) {
            console.log("drag start");
        }
    });
});
4

6 回答 6

9

只需使用$("#tableId").tableDnDUpdate()

从文档:

Will update all the matching tables, that is it will reapply the mousedown method to the rows (or handle cells). This is useful if you have updated the table rows using Ajax and you want to make the table draggable again. The table maintains the original configuration (so you don't have to specify it again).

于 2013-07-10T22:01:42.510 回答
6

您还没有显示执行附加行的代码,这是您需要重新绑定tableDnD相关事件的地方,但它看起来像这样:

$(document).ready(function() {
    //on load
    addTableDnD();

    //appending a row
    $(".add-row").click(function() {
        $("<tr />").appendTo("#tableId");
        addTableDnD(); // re-attach events to pick up the new row.
    });
});

function addTableDnD() {
    $("#tableId").tableDnD({
        onDragClass : "myDragClass",
        onDrop : function(table, row) {

        },
        onDragStart : function(table, row) {
            console.log("drag start");
        }
    });
}
于 2012-09-28T08:13:07.360 回答
3

很简单:

$("#tableId").tableDnDUpdate()

添加新行后。

于 2014-10-27T19:04:39.483 回答
2

请试试这个:

function sample()
{
        $("#tableId").tableDnD({
            onDragClass : "myDragClass",
            onDrop : function(table, row) {

            },
            onDragStart : function(table, row) {
                console.log("drag start");
            }
        });

}

在正文 onload 中调用 sample() 函数,并在每个新行条目时间再次调用 sample() 函数。

注意:为避免出现两次问题,请尝试在 jquery 中使用“live”功能

于 2012-09-28T08:22:51.997 回答
0

如果新添加的行 tr 与现有行具有相同的 id,tablednd 可能无法使其可拖动。

于 2014-02-17T23:26:29.247 回答
0
$("#table_id").tableDnDUpdate();

我用这个解决了同样的问题

于 2020-03-16T14:20:02.173 回答