.bind("move_node.jstree",.. -> data.rslt.obj undefined.如何获取节点数据?

问题描述 投票:0回答:2

我有一个用于 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;        
                }

        }   
    },

这似乎按预期工作。 然后,我尝试绑定到“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 未定义。我真的不知道该怎么办,我之前绑定过多个事件,这就是我所做的。

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

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

jstree
2个回答
10
投票

必须使用 data.rslt.o.attr("id") 而不是 -.obj.- 如果你问我的话,这是一个奇怪的不一致。


2
投票
if(!p)
  return false;
if(m.cr===-1)
  return false;

return true;

下次尝试这样做:

return (p && m.cr !== -1);
© www.soinside.com 2019 - 2024. All rights reserved.