通过拖放获取 jstree 的元素 id

问题描述 投票:0回答:4

我有 2 个 jstree,现在我正在尝试在它们之间实现拖放选项,但我似乎无法设法获取我正在拖动的元素的 id 或新父级的 id(拖放后)。 到目前为止,这是我创建的代码,但在我提醒的数据中没有 id 或任何其他信息可以帮助我。

$("#tree").jstree({


   "dnd" : {

        "drop_finish" : function(data) {
            alert(data.toSource());
        }
       },
   "plugins" : [ "themes", "html_data", "dnd", "ui", "types" ],
});

我还创建了一个可用的 Fiddle,其中包含 2 棵树和几乎所有我的代码。

如果有人能给我提示或想法如何解决这个问题,我将不胜感激。

javascript jquery drag-and-drop jstree
4个回答
6
投票

试试这个

$("#tree").bind('move_node.jstree', function(e, data) {
    alert(data.node.id);
    alert(data.parent);
    alert(data.old_parent);
    alert(data.position);
}

这些变量几乎是不言自明的。


0
投票

不要使用“dnd”,尝试像这样的“crrm”。

"crrm": {
        "move": {
            "always_copy": "multitree",//create a copy node,prevent removing node
            check_move: function(m) {
                // use m.ot,m.rt to get the id of the node you are dragging or the node you will drop down.
            }
            ,"default_position": "last"
        }
    },

请先阅读 jstree 文档。我花了更多的时间来学习它。所以尝试阅读文档,你想要的一切都在里面。


0
投票

你可以用这个,

"check_callback" :  function (op, node, par, pos, more) {
    if ((op === "move_node" || op === "copy_node") && node.type && node.type == "root") {
        return false;
    }
    if ((op === "move_node" || op === "copy_node") && more && more.core && !confirm('Are you sure ...')) {
        return false;
    }
    return true;
},

0
投票

用这个:

$(document).bind("dnd_stop.vakata", function(e, data) {

});
© www.soinside.com 2019 - 2024. All rights reserved.