jsTree - 禁用拖动选项

时间:2010-05-25 19:11:41

标签: drag-and-drop jstree

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

6 个答案:

答案 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;
      }
}

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