2014-04-14 1 views
11

jsTree를 사용하여 매우 간단한 트리를 구현하려고합니다. 나는 문서가 빽빽하고 압도적 인 것을 발견했다.부모가 클릭 할 때 jsTree 노드를 확장하십시오.

는 지금, 나는/확장 여기에있는 화살표를 클릭하여 노드를 보여 축소

enter image description here을 :

enter image description here

내가 너무 노드 이름을 클릭하여 확장/축소 할 수 있도록하려면

내가 사용하는 코드는 간단합니다. 나는 jsTree에 대한 자바 스크립트를 변경하지 않은 :

<ul id="tree"> 
    <li> 
     SubFolder1 
     <ul id="tree"> 
     <li data-jstree='{"icon":"/Images/blue-folder.png"}'>Pub 1</li> 
     </ul> 
    </li> 
</ul> 
+0

중복 가능성을 작동합니다 (http://stackoverflow.com/questions/4486032/open-branch-when-clicking-on- a-node) – kostmo

답변

6

는 그냥 html 파일에 이벤트 리스너를 추가하고 toggle_node 함수를 호출합니다. 다음 코드는 한 번의 클릭으로 수신 대기합니다.

$(document).ready(function(){ 
    $('#jstree_div').on("select_node.jstree", function (e, data) { $('#jstree_div').toggle_node(data.node); }); 
} 

jsTree가 두 번 클릭 이벤트를 아직 지원하지 않으므로 두 번 클릭하기 위해 다른 이벤트 수신기가 필요합니다.

$('#jstree_div').on("dblclick",function (e) { 
    var li = $(e.target).closest("li"); 
    var node = $('#jstree_div').get_node(li[0].id); 

    $('#jstree_div').toggle_node(node) 
}); 

희망이 있습니다.

+1

지금 더블 클릭을 지원합니다 [link] (https://www.jstree.com/api/#/?q=$.jstree.defaults&f=$.jstree.defaults.core.dblclick_toggle) – chech

11
$('#tree').on('select_node.jstree', function (e, data) { 
    data.instance.toggle_node(data.node); 
}); 

저에게는 효과가있었습니다. oerls 솔루션 않았다.

$('#jstree').jstree({ 
    "plugins" : [ "wholerow" ] 
}); 

jsTree API

이 그것이 전체 행을 클릭있어 어느 지점을 전환됩니다 : 당신이 jsTree의 인스턴스를 만들 때

+0

for 나도 고마워!! –

-1

이 표준 기능입니다. [노드에서 클릭하면 열기 가지?]

+0

작동하지 않습니다. 전체 행만 선택할 수 있습니다. 선택한 폴더 아래의 폴더는 확장되지 않습니다. –

1
$('#jstree').on("select_node.jstree", function (e, data) { 
    $('#jstree').jstree("toggle_node", data.node); 
}); 

이는의