jsTree对象没有方法addBack

tuf*_*der 4 javascript jquery jstree

这是我的jsTree实例化代码.

$("#folder_tree").jstree({
    "themes" : {
        "theme" : "default",
        "dots" : true,
        "icons" : true
    },
    "json_data" : {
        "ajax" : {
            "url" : "/portal/folders",
            "data" : function(n) {
                if ($(n[0]).find("a").attr("id")) {
                    console.log($(n[0]).find("a").attr("id").split('_')[1]);
                    return {
                        "id" : $(n[0]).find("a").attr("id").split('_')[1]
                    };
                }
                return { "id" : "0" };
            }
        }
    },
    "plugins" : [ "themes", "json_data", "ui", "contextmenu", "dnd", "search", "crrm" ]
}).bind("select_node.jstree", function(e,data) {
    console.log(data.rslt.obj.context.id);
});
Run Code Online (Sandbox Code Playgroud)

它在第一次加载(0大小写)时正确加载数据,但是当我单击以展开任何文件夹时,它会给我错误:

Uncaught TypeError: Object [object Object] has no method 'addBack' 
Run Code Online (Sandbox Code Playgroud)

即使已将扩展节点的正确ID记录到控制台,并且正确地向服务器发出了ajax请求.另请注意,我必须使用相当可怕的kludge来查找元素的id,因为在尝试访问时,记录的代码只会产生错误(我使用与文档相同的jsTree版本)n.attr("id").另外,在bind("select_node"...我必须使用未记录的函数再次找到id.经过几个小时的故障排除后,我仍然感到困惑,但有些事情显然无法正常运行.

cdm*_*kay 12

确保您使用的是jQuery 1.8或更高版本.addBack直到那时才被添加.

  • 这个问题让我花了一个小时.谢谢你的解决方案. (2认同)