我为check_move提供了自定义功能:

crrm : {
        move : {
            "check_move" : function (m) {

                var p = this._get_parent(m.o);
                if(!p)
                    return false;
                if(m.cr===-1)
                    return false;
                return true;
                }

        }
    },

这似乎按预期工作。
然后,我尝试绑定(bind)到“move_node”事件以更新数据库:
.bind("move_node.jstree",function(event,data){
    if(data.rslt.obj.attr("id")==""){
         /* I omitted this snippet from this paste - it's really long and it basically does the same thing as below, just gets the node's id in a more complicated way*/
    } else {
        controller.moveNode(data.rslt.obj.attr("id"),data.inst._get_parent(this).attr("id"),data.rslt.obj.attr("rel"));
    }
})

这会导致错误。 data.rslt.obj是未定义的。我真的无所适从,我之前绑定(bind)过多个事件,而这就是我的工作方式。

如果data.rslt.obj不起作用,如何在move_node事件后获取节点属性等?

哦,controller.moveNode()是我自己的函数之一,所以如果您想学习jstree,请不要只复制粘贴。

最佳答案

在问了一下(典型的)后不久,我就找到了自己的问题的答案。

必须使用data.rslt.o.attr(“id”)而不是-.obj。

我将删除此帖子,但是我认为这可能是一个非常普遍的问题。如果有人有其他想法,请随时删除。

关于jstree - .bind (“move_node.jstree”,..-> data.rslt.obj未定义。如何获取节点数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6110708/

10-12 23:06