JqTree.Target_node в информации о перемещении события - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь использовать http://mbraak.github.com/jqTree/

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

. Я пытался использовать event.move_info.target_node.getLevel () в моем onCanMoveTo.функция, но я заметил, что что-то сбивает с толку.
Изменение порядка "node1" дочерние элементы обычно возвращает event.move_info.target_node.getLevel () = 2. Например, если я переместить "child3" выше "child2" и другим способомкруглый.Однако, если я перемещу «child3» выше «child1», то «child1» становится первым дочерним элементом «node1», тогда event.move_info.target_node.getLevel () возвращает 1. Я не перемещаю его на тот же уровень, где«узел1» и «узел2» есть, поэтому не уверен, почему такой результат.

var data = [
    {
        label: 'node1',
        children: [
            { label: 'child1' },
            { label: 'child2' },
            { label: 'child3' }
        ]
    },
    {
        label: 'node2'
    }
];

$('#tree1').tree({
    data: data,
    autoOpen: true,
    dragAndDrop: true,
    onCanMove: function(node) {
    if (!node.parent.parent) {
        // Cannot move root node
        return false;
    } else {
       return true;
                    }
    }, 
    onCanMoveTo: function(moved_node, target_node, position) {
        if (!target_node.parent.parent) {
            return false;
        } else {
            return true;
        }
    }
});

$('#tree1').on(
    'tree.move',
    function(event) {
        console.log('moved_node', event.move_info.moved_node);
        console.log('target_node', event.move_info.target_node);
        console.log('target_node level', event.move_info.target_node.parent.getLevel());
        console.log('position', event.move_info.position);
        console.log('previous_parent', event.move_info.previous_parent);
    }
);

http://jsfiddle.net/V5dLM/860/

...