2012-03-28 1 views
0

jsTree jQuery 플러그인을 사용하고 있습니다. 내 나무가 처음에 펼쳐지는 문제가 있습니다.jsTree는 처음 선택된 논쟁의 순서에 따라 노드를 확장합니까?

아래 enter image description here

내가 사용한 HTML입니다 :

enter image description here

이 나는 ​​사용자가보고 싶은 것입니다 :

는 사용자가 페이지를로드 할 때 보는 것입니다 시험용. 내가 찾은 것은이 동작이 initially_select 인수의 순서에 의해 결정된다는 것입니다. 내가 'initially_select': ['2', '1'] 일 때 나무는 처음에 확장되어 보여집니다. 내가 'initially_select': ['1', '2'] 일 때 트리는 처음에는 닫힌 것으로 표시됩니다. 최상위 노드를 먼저 선택하면 트리가 닫힌 채로 유지됩니다. 그러나, 나의 실제 사용 케이스에서 나는 쉽게 구분되지 않는 내 노드에 의미있는 ID를 가지고있다. 내 트리에서 어떤 항목이 "최상위"인지 쉽게 판단 할 수있는 쉬운 방법이 없습니다.

나는 해결책을 시도했다 here를 건의했다. loaded.jstree 콜백에 close_all을 호출했지만로드 된 이벤트 콜백이 보다 먼저 실행되고initially_selected 항목이 선택됩니다. 따라서 jsTree는 이미 닫혀있는 모든 노드를 닫은 다음 여러 노드를 선택하여 그 중 많은 노드가 다시 확장되도록합니다.

내가 원한다면 사용자가 페이지를로드 할 때 jsTree를 완전히 축소해야합니다.

여기 데모를위한 HTML이다 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<html lang="en"> 
<head> 
    <title>jsTree Test</title> 
    <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
</head> 
<body> 
    <div id="my_tree"> 
    <ul> 
     <li> 
     <a id="1">Item 1</a> 
     <ul> 
      <li><a id="2">Item 1.1</a></li> 
     </ul> 
     </li> 
    </ul> 
    </div> 
    <script type="text/javascript" src="jquery-1.7.1.min.js"></script> 
    <script type="text/javascript" src="jquery.jstree.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#my_tree').jstree(
       {'plugins': ['themes', 'checkbox', 'html_data', 'ui'], 
       'checkbox': {'override_ui': true, 'real_checkboxes': true}, 
       'ui': {'initially_select': ['2', '1']}, 
       'themes': {'icons': false}} 
      ); 
     }); 
    </script> 
</body> 
</html> 

답변

0

JQuery와 1.6.4로 테스트 해보십시오.

jstree를 1.7.x에서 사용하는 데 문제가있어서 1.6.4로 되돌려 야했습니다.