我有 2 个 jstree,现在我正在尝试在它们之间实现拖放选项,但我似乎无法设法获取我正在拖动的元素的 id 或新父级的 id(拖放后)。 到目前为止,这是我创建的代码,但在我提醒的数据中没有 id 或任何其他信息可以帮助我。
$("#tree").jstree({
"dnd" : {
"drop_finish" : function(data) {
alert(data.toSource());
}
},
"plugins" : [ "themes", "html_data", "dnd", "ui", "types" ],
});
我还创建了一个可用的 Fiddle,其中包含 2 棵树和几乎所有我的代码。
如果有人能给我提示或想法如何解决这个问题,我将不胜感激。
试试这个
$("#tree").bind('move_node.jstree', function(e, data) {
alert(data.node.id);
alert(data.parent);
alert(data.old_parent);
alert(data.position);
}
这些变量几乎是不言自明的。
不要使用“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 文档。我花了更多的时间来学习它。所以尝试阅读文档,你想要的一切都在里面。
你可以用这个,
"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;
},
用这个:
$(document).bind("dnd_stop.vakata", function(e, data) {
});