我有一个jsTree,我希望它的一些节点是可移动的。根节点及其直接子节点不能移动。jsTree禁用移动一些节点
我正在使用crrm,它的工作方式与预期的一样,但它仍然允许我拖动所有节点,即使是那些不能放在任何位置的节点(紧接在root下面)。我不希望它们是可拖动的,即用户根本无法拿起它们。
我有一个jsTree,我希望它的一些节点是可移动的。根节点及其直接子节点不能移动。jsTree禁用移动一些节点
我正在使用crrm,它的工作方式与预期的一样,但它仍然允许我拖动所有节点,即使是那些不能放在任何位置的节点(紧接在root下面)。我不希望它们是可拖动的,即用户根本无法拿起它们。
类似的问题问,看看我的回答是: dnd, how to restrict dropping to certain node types?
需要有对crrm.move.check_move功能某种类型的嗅觉测试。你的情况这将是根和第一个孩子。
我想你需要的是drag_check
"dnd" : {
"drop_target" : false,
"drag_check" : function(data)
{
if(data.r.attr("id") == ...)
return false;
//if you want to enable drag for certain nodes return following
return {
after : true,
before : false,
inside : false
}
}
我相信只有在拖放外部对象时才会使用“dnd”回调。问题是关于树内部的节点。 –
在当前版本jsTree的(3.0.8),你这样做:
使用is_draggable功能与插件类型沿控制可以拖动的内容。如果你想看到我使用的图标包括bootstrap的图形样式表。这里的代码假设你已经在你的HTML中有一个div和jstree列表。如果有人无法理解上面的代码,我会发布一个plunkr。
编辑 - 防止跌落做到这一点:
"core" : {
"check_callback" : function(operation, node, node_parent, node_position, more) {
if (operation == 'move_node') {
console.log(node_parent);
if (node_parent.type == 'MY-DROPPABLE-TYPE') {
return true
} else
return false;
}
}
},
使用check_callback功能来筛选可放开的类型。使用node_parent来获取可放置的。
相似,但不是我在这里问的。 crrm check_move对我的问题没有用处。它只会阻止我拖放拖动的节点。我不希望用户能够拖动无法在任何地方丢弃的节点。 – Ali