jsTree-禁用拖动选项

问题描述 投票:6回答:6

如何禁用jsTree中的可拖动选项?我想禁用移动节点。我该如何实现?

drag-and-drop jstree
6个回答
2
投票

简单添加此:

"default" : {
    draggable : false
},

它应该在类型:部分中。


8
投票

很简单。不要在插件中添加dnd选项

这包括拖放功能

"plugins": ["themes","html_data","dnd","ui","types"]

这将禁用拖放功能

"plugins": ["themes","html_data","ui","types"]


2
投票

不将'dnd'添加到类型中是可行的。您也可以在插件上使用该属性,这将禁止所有移动。

       dnd: {
            "is_draggable": function (node) {
                return false;  // flip switch here.
            }
        },

1
投票

这在较新版本的JSTree中已更改。

我的方法(在v1.0中是在crrm部分中。我的check_move看起来像这样:

"check_move" : function (m) {
                    return (m.o.data("rel")=="itemsetting" ? false : true);
                }

m.o.data(“ rel”)是如何获取要拖动的节点的类型。

[这使得该类型的节点无法被拖动,无论该节点被拖动到何处,都给它一个X图标。


0
投票

我想对禁用的节点禁用拖放,这可行:

const config = {
  plugins: ['dnd', ...],
  dnd: {
    is_draggable: node => !node[0].state.disabled,
  },
}

0
投票

属性is_draggable似乎只禁止将节点拖动到树中的其他位置。但是节点仍然可以在页面上拖动。因此,例如可以将Node拖到Page上的输入字段。

由于研究了如何完全禁用拖动功能,我花了一段时间,这对于偶然发现此主题的其他人可能很有用。

您可以通过在事件上调用preventDefault()来完全禁用拖动:

dnd: {
      "is_draggable": function (node) {
         e.preventDefault();
         return false;
      }
}

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

© www.soinside.com 2019 - 2024. All rights reserved.