2012-03-12 1 views
1

jsTree를 사용하여 데이터 객체를 읽을 때 data.rslt가 정의되지 않았습니다.jsTree에서 data.rslt가 정의되지 않음

JSON을로드하는 트리를 만드는 내 jQuery가 있으며로드 될 때 data.rslt 객체를 콘솔에 출력해야합니다. 여기

$(function() { 
    $("#demo1").jstree({ 
     "plugins" : [ "themes","json_data","ui", "crrm" ], 
     "json_data" : { 
      "ajax" : { 
       "url" : "categorytreejson.asp" 
      } 
     }, 
     "ui" : { 
      "initially_select" : [ "root" ] 
     } 
    }); 

    $("#demo1").bind("loaded.jstree", function (e, data) { 
     console.log(data.rslt) 
    }); 
}); 

는 JSON 데이터

{"data": "root", "attr": {"id": "root"}, "children": [{"data": "Photography", "attr": {"id": "Photography"}, "children": [{"data": "Lenses", "attr": {"id": "Lenses"}, "children": [{"data": "Telephoto", "attr": {"id": "Telephoto"}},{"data": "Macro", "attr": {"id": "Macro"}},{"data": "Other", "attr": {"id": "Other"}}]}]}]} 

생성 HTML

<li class="jstree-last jstree-open" id="root"><ins class="jstree-icon">&nbsp;</ins><a class="" href="#"><ins class="jstree-icon">&nbsp;</ins>root</a><ul style=""><li class="jstree-closed" id="Photography"><ins class="jstree-icon">&nbsp;</ins><a class="" href="#"><ins class="jstree-icon">&nbsp;</ins>Photography</a><ul><li class="jstree-last jstree-closed" id="Lenses"><ins class="jstree-icon">&nbsp;</ins><a href="#"><ins class="jstree-icon">&nbsp;</ins>Lenses</a><ul><li class="jstree-leaf" id="Telephoto"><ins class="jstree-icon">&nbsp;</ins><a href="#"><ins class="jstree-icon">&nbsp;</ins>Telephoto</a></li><li class="jstree-leaf" id="Macro"><ins class="jstree-icon">&nbsp;</ins><a href="#"><ins class="jstree-icon">&nbsp;</ins>Macro</a></li><li class="jstree-last jstree-leaf" id="Other"><ins class="jstree-icon">&nbsp;</ins><a href="#"><ins class="jstree-icon">&nbsp;</ins>Other</a></li></ul></li></ul></li></li></ul></li></ul></li> 

그리고 방화범의 데이터 오브젝트이다.

args: [] 
inst: Object { data={...}, get_settings=function(), _get_settings=function(), more...} 
rlbk: false 
rslt: undefined 

답변

1

일부 이벤트는 data.rslt 객체를 채울 수 없습니다. jsTree core documentation의로서는
:

데이터 구조 : 추가 데이터가 함수에 전달되지 않았기 때문에 특히

{ 
    "inst" : /* the actual tree instance */, 
    "args" : /* arguments passed to the function */, 
    "rslt" : /* any data the function passed to the event */, 
    "rlbk" : /* an optional rollback object - it is not always present */ 
} 

loaded.jstree 이벤트 빈 data.rslt있을 것이다.

create.jstree 또는 rename.jstree과 같은 다른 이벤트는 data.rslt가 채워집니다.

지금은 당신에게 더 분명하길 바랍니다 .-)

+0

감사합니다. 귀하의 권리와 저는 지금 작동하고 있습니다. 나는 조금 더 읽고 있었음에 틀림 없다. – Chris

+0

나는 지금이 문제에 대해 몇 시간을 보냈다. 그리고이 대답은 나를 위해 무엇인가를 정말로 정리하지는 못한다. 나는 여기에서 아약스 데모를 따르고있다 : http://www.jstree.com/demo/open_close 그리고 addBack 함수에 대한 에러를 얻고있다. 또한 ajax 데이터 함수에 전달 된 'n'객체에는 attr ("id") 값이 없으므로 클릭 한 항목의 ID를 가져 오기 위해 다음과 같은 축약 된 동물원을 사용해야합니다. $ (n [0]). find "a"). attr ("id"). – tufelkinder