JqTree。事件移动信息中的Target_node

时间:2018-10-17 15:04:36

标签: jqtree

我正在尝试使用http://mbraak.github.com/jqTree/

我不希望用户将根节点移动或将子节点移动到根。 onCanMove参数可以正常工作,但无法正确显示onCanMoveTo。这样的工作是,如果我的父母中有孩子,但是如果父母中的孩子为空,我将无法在其中移动任何孩子

我试图在onCanMoveTo函数中使用event.move_info.target_node.getLevel(),但我发现有些困惑。
更改“ node1”子级的顺序通常会返回event.move_info.target_node.getLevel()=2。例如,如果我将“ child3”移到“ child2”上方,并且以其他方式移动。 但是,如果我将“ child3”移到“ child1”上方,那么“ child1”成为“ node1”的第一个子级,那么event.move_info.target_node.getLevel()返回1。 “ node1”和“ node2”是,所以不确定为什么会这样。

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/

0 个答案:

没有答案