我有一个使用dnd插件的jsTree,允许拖放树项以改变它们的位置。但是我注意到索引是错误的,这取决于你是否在一个对象之前或之后放下该项目,并且在谷歌搜索了几个小时后如何修复索引问题,我得出的结论是,更容易禁用之后除非它是子集的最后一个树节点
我使用以下代码来调用配置dnd插件:
'dnd': {
'drop_finish': function (data) {
alert("hi");
},
'drag_check': function (data) {
alert('hi1');
if (data.r.attr('id') == 'RootNode') {
return false;
} else if (data.r.hasClass('jstree-last')) {
return {
after: true,
before: true,
inside: true
};
} else {
return {
after: false,
before: true,
inside: true
};
}
}
}
然而,hi1
永远不会收到警报(但hi
在我放弃项目后会这样做)所以我仍然可以放弃元素。我已经尝试了解如何调用拖动检查并尝试了许多内容,例如添加jstree-drop
类以及本网站上建议的其他内容但我无法获得hi1
被警告。
在解决此问题时,我们将不胜感激任何帮助
由于
答案 0 :(得分:1)
看起来“dnd”插件用于外部拖放。
您可以使用check_move
来阻止移动到节点中的最后一个位置:
"crrm": {
"move": {
"check_move": function(m) {
var length = $(m.np).find("ul:first > li").length,
afterLast = length == m.cp;
if (length > 0 && afterLast) {
return false;
}
return true;
}
}