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