gpt4 book ai didi

javascript - jstree 检测多个项目被移动

转载 作者:行者123 更新时间:2023-12-03 00:45:55 25 4
gpt4 key购买 nike

使用jstree是否可以检测是否同时移动多个选定的节点...或者当前正在处理哪个节点? (您可以使用 shiftctrl 键选择多个节点。)

我正在使用 move_node.jstree 事件,但我在 edata 属性中看不到任何明显的内容告诉我是否正在移动多个项目,或者传递给事件的节点在列表中的索引。

$tree.bind("move_node.jstree", function (e, data) { ... }

每次将节点从一个父节点移动到另一个父节点时,我都需要调用 AJAX...这会导致服务器上进行一些处理。

如果同时移动多个节点,则根本没有必要在服务器上为每个单独的节点执行此处理...只有在最后节点上运行 AJAX 才有意义.

最佳答案

如果您使用 jsTree 的拖放插件 (dnd),则移动的每个单独节点都会触发“move_node.jstree”。由于该事件是针对每个节点触发的,因此无法检测到正在移动的多个项目。但是,您可以使用 dnd 插件的事件来检测正在移动的多个项目。

$(document).on("dnd_move.vakata", function (e, data) {
console.log("DND Move"); //Triggered continuously during drag
}).bind("dnd_stop.vakata", function(e, data) { //Triggered on drag complete
console.log("Stop dnd");
console.log("Nodes being moved: "+ data.data.nodes);
});

oTree.bind("move_node.jstree", function (e, data) {
console.log("Move Event");
});

“dnd_stop.vakata”事件在 move_node 事件之前触发,可能会有所帮助。不过,您必须将它们全部粘合在一起才能进行单个 AJAX 调用。

关于javascript - jstree 检测多个项目被移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53250446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com