이것은 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'
을 확장 된 노드의 올바른 ID가 콘솔에 기록되고 서버에 대한 ajax 요청이 올바르게 수행됩니다. 또한 액세스하려고 할 때 문서화 된 코드가 나에게 오류 만 생성한다는 사실 (그리고 jsTree의 동일한 버전을 문서로 사용하고 있기 때문에) 요소의 ID를 찾기 위해 상당히 끔찍한 kludge를 사용해야 함을 주목하십시오 n.attr("id")
. 또한 bind("select_node"...
아래에 문서화되지 않은 함수를 사용하여 ID를 다시 찾아야합니다. 몇 시간의 문제 해결 후에도 여전히 당황 스럽지만 어떤 것이 명확하게 올바르게 작동하지 않습니다.
jQuery 1.8 이상을 사용하고 있습니까? 그때까지'addBack'은 추가되지 않았습니다. – cdmckay
와우. 감사. 당신. – tufelkinder
답변으로 추가했습니다. – cdmckay