6

如何禁用 jsTree 中的可拖动选项?我想禁用移动节点。我怎样才能做到这一点?

4

6 回答 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;
      }
}

https://github.com/vakata/jstree/issues/1103

于 2020-02-19T12:48:04.500 回答