jsTree - отключить опцию перетаскивания

как я могу отключить опцию перетаскивания в jsTree? Я хочу отключить движущиеся узлы. Как я могу этого добиться?


person niao    schedule 25.05.2010    source источник


Ответы (6)


просто добавьте это:

"default" : {
    draggable : false
},

он должен быть в типах: раздел.

person Asaf    schedule 01.06.2010

Это просто. Не добавляйте опцию dnd в плагины.

Это включает в себя функцию перетаскивания

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

Это отключает функцию перетаскивания

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

person Satheesh    schedule 25.06.2012

Не добавление «dnd» к типам работает. Вы также можете использовать свойство плагина, это отключит все перемещения.

       dnd: {
            "is_draggable": function (node) {
                return false;  // flip switch here.
            }
        },
person Yogurt The Wise    schedule 29.08.2016

В новой версии JSTree это изменилось.

То, как я это сделал (в v1.0), было в разделе crrm. Мой check_move выглядел так:

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

m.o.data("rel") - это то, как вы получаете тип перетаскиваемого узла.

Это делает узел этого типа недоступным для перетаскивания, присваивая ему значок X независимо от того, куда перетаскивается узел.

person Scottingham    schedule 17.05.2012

Я хотел отключить перетаскивание для отключенных узлов, это сработало:

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

Свойство is_draggable отключает только перетаскивание узлов в другие позиции внутри дерева. Но узлы по-прежнему можно перетаскивать на странице. Таким образом, можно, например, перетащить узел в поле ввода на странице.

Поскольку исследование того, как полностью отключить перетаскивание, заняло у меня некоторое время, это может быть полезно для других, которые наткнулись на эту тему.

Вы можете полностью отключить перетаскивание, вызвав preventDefault() для события:

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

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

person Mike Lambert    schedule 19.02.2020