2016-06-21 1 views
0

JSTree &은 노드의 선택, 선택 취소 및 선택 이벤트에서 다른 작업을 수행해야하는 시나리오에서 작동합니다. "select_node"는 노드 세부 정보 만 필요하기 때문에 벌금이 부과되지만 check_node & uncheck_node 이벤트에 올바른 노드 목록이 필요합니다.확인란을 선택하고 선택을 해제하고 select_node 이벤트를 별도로 사용하는 방법

check_node "data.selected.length"는 루트가 자식이 모두 선택되면 1을 반환하지만 전체 목록을 원합니다. 루트 내 필요 여기 노드를 선택 해제 전에 확인 노드의 길이를 돌려 선택을 취소

uncheck_node 후 나는 다른 기능이 여기에 귀하의 문제를 해결하는 것이라고 생각 그들에게

<a href="http://jsfiddle.net/mL7bna1p/">Code on JSFiddle</a> 

답변

0

의 선택을 취소 확인 노드의 길이를 얻을 수 있습니다 . get_selected 대신 get_checked 함수를 사용하십시오.

$('#jstree').on("check_node.jstree", function (e, data) 
{ 
    //var selectedNode = $(jstree).jstree().get_selected(true); 
    var selectedNodes = $(jstree).jstree().get_checked(); 
    alert("Checked: "+ selectedNodes.length); 
}); 

$('#jstree').on("uncheck_node.jstree", function (e, data) 
{ 
    //var selectedNode= $('#jstree').jstree(true).get_selected('full',true); 
    var selectedNodes = $(jstree).jstree().get_checked(); 
    alert("Checked: "+ selectedNodes.length); 
});