這是我的jsTree實例化代碼。jsTree對象沒有方法addBack
$("#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);
});
它加載正確的第一次加載數據(0時),但後來當我點擊展開任何文件夾,這是給我的錯誤:
Uncaught TypeError: Object [object Object] has no method 'addBack'
即使擴展節點的正確標識正在記錄到控制檯,並且正在向服務器發出ajax請求。還要注意,我必須使用相當可怕的kludge來查找元素的id,因爲記錄的代碼在嘗試訪問時爲我產生的只是錯誤(並且我使用的是與文檔相同版本的jsTree) n.attr("id")
。此外,在bind("select_node"...
下,我必須使用非文件化功能再次查找該ID。經過幾個小時的故障排除後,我仍然完全困惑,但顯然不能正常運行。
您使用jQuery 1.8或更高版本嗎?直到那時才添加'addBack'。 – cdmckay 2013-02-24 22:51:38
哇。謝謝。您。 – tufelkinder 2013-02-25 01:48:37
我將其添加爲答案。 – cdmckay 2013-02-25 02:03:12