如何禁用 jsTree 中的可拖动选项?我想禁用移动节点。我怎样才能做到这一点?
问问题
8675 次
6 回答
9
它的简单。不要在插件中添加 dnd 选项
这包括拖放功能
"plugins": ["themes","html_data","dnd","ui","types"]
这会禁用拖放功能
"plugins": ["themes","html_data","ui","types"]
于 2012-06-25T12:30:37.953 回答
2
只需添加以下内容:
"default" : {
draggable : false
},
它应该在类型:部分。
于 2010-06-01T07:35:26.997 回答
2
不在类型中添加“dnd”确实有效。您也可以使用插件上的属性,这将禁用所有移动。
dnd: {
"is_draggable": function (node) {
return false; // flip switch here.
}
},
于 2016-08-29T15:15:01.430 回答
1
这在 JSTree 的较新版本中发生了变化。
我这样做的方式(在 v1.0 中)是在 crrm 部分。我的 check_move 看起来像这样:
"check_move" : function (m) {
return (m.o.data("rel")=="itemsetting" ? false : true);
}
moda("rel") 是获取被拖动节点类型的方式。
这使得该类型的节点不能被拖动,无论节点被拖动到哪里,都会给它一个 X 图标。
于 2012-05-17T15:39:44.537 回答
0
我想禁用禁用节点的拖放,这有效:
const config = {
plugins: ['dnd', ...],
dnd: {
is_draggable: node => !node[0].state.disabled,
},
}
于 2019-02-06T10:52:47.533 回答
0
属性 is_draggable 似乎只禁止将节点拖动到树内的其他位置。但是节点仍然可以在页面上拖动。因此,例如可以将节点拖动到页面上的输入字段。
由于研究如何完全禁用拖动花了我一段时间,这可能对其他偶然发现这个话题的人有用。
您可以通过在事件上调用 preventDefault() 来完全禁用拖动:
dnd: {
"is_draggable": function (node) {
e.preventDefault();
return false;
}
}
于 2020-02-19T12:48:04.500 回答