2013-02-24 3 views
4

이것은 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를 다시 찾아야합니다. 몇 시간의 문제 해결 후에도 여전히 당황 스럽지만 어떤 것이 명확하게 올바르게 작동하지 않습니다.

+4

jQuery 1.8 이상을 사용하고 있습니까? 그때까지'addBack'은 추가되지 않았습니다. – cdmckay

+0

와우. 감사. 당신. – tufelkinder

+0

답변으로 추가했습니다. – cdmckay

답변

12

jQuery 1.8 이상을 사용하고 있는지 확인하십시오. 그때까지 addBack은 추가되지 않았습니다.

+2

이 문제는 한 시간 내내 일어났습니다. 귀하의 솔루션에 감사드립니다. – Saurabh

관련 문제