如何在jsTree中禁用可拖动选项?我想禁用移动节点。我怎样才能做到这一点?
答案 0 :(得分:8)
简单。不要在插件中添加dnd选项
这包括阻力&删除功能
"plugins": ["themes","html_data","dnd","ui","types"]
这会禁用拖放功能。删除功能
"plugins": ["themes","html_data","ui","types"]
答案 1 :(得分:2)
不添加' dnd'对类型确实有效。 您还可以在插件上使用该属性,这将禁用所有移动。
dnd: {
"is_draggable": function (node) {
return false; // flip switch here.
}
},
答案 2 :(得分:1)
只需添加:
"default" : {
draggable : false
},
它应该在类型:section。
答案 3 :(得分:1)
在较新版本的JSTree中发生了变化。
我这样做的方式(在v1.0中)是在crrm部分。我的check_move看起来像这样:
"check_move" : function (m) {
return (m.o.data("rel")=="itemsetting" ? false : true);
}
m.o.data(“rel”)是获取被拖动节点类型的方式。
这使得无法拖动该类型的节点,无论拖动哪个节点,都会为其提供X图标。
答案 4 :(得分:0)
我想为禁用的节点禁用拖放功能,
const config = {
plugins: ['dnd', ...],
dnd: {
is_draggable: node => !node[0].state.disabled,
},
}
答案 5 :(得分:0)
属性is_draggable似乎仅禁用将节点拖动到树中的其他位置。但是节点仍然可以在页面上拖动。 因此,例如可以将Node拖动到Page上的输入字段。
由于研究了如何完全禁用拖动功能,我花了一些时间,这对于偶然发现此主题的其他人可能很有用。
您可以通过在事件上调用preventDefault()来完全禁用拖动:
dnd: {
"is_draggable": function (node) {
e.preventDefault();
return false;
}
}