2016-08-23 2 views
0

jstree : 부모 노드 클릭시 모든 자식 요소 만 선택되고 부모 노드가 선택되어야합니다.jstree : 부모 노드 클릭시 모든 자식 요소 만 선택되고 부모 노드는 선택되지 않아야합니다.

$('#DivIndustryCategoryTree').on('changed.jstree Event', function(e, data) { 
    var i, j, r = []; 
    var relatedIndustryID = []; 
    categoryBEArray.RelatedIndustries = []; 
    for (i = 0, j = data.selected.length; i < j; i++) { 
     var indSelectedObj = {}; 
     indSelectedObj.ProductID = ProductID; 
     indSelectedObj.ProductPageID = ProductPageID; 
     indSelectedObj.Language = Language; 
     r.push(data.instance.get_node(data.selected[i]).text); 
     indSelectedObj.IndustryID = parseInt(data.instance.get_node(data.selected[i]).id); 
     relatedIndustryID.push(parseInt(data.instance.get_node(data.selected[i]).id)); 
     categoryBEArray.RelatedIndustries.push(indSelectedObj); 
    } 
    selectedData = r; 
    selectedDataID = relatedIndustryID; 
    categoryBEArray.RelatedServices.push(null); 
    categoryBEArray.ID = ProductID; 
}); 

답변

0

구성을 통해 가능하지 않다고 생각합니다. 하지만 당신이 할 수있는 일은 모든 선택된 노드를 반복하여 루프의 시작 부분에 parent (top_selected) 노드에 대한 체크를 유지하고 그것이 틀린 경우에만 루프 본문을 실행하게하는 것입니다.

코드 :

$('#DivIndustryCategoryTree').on('changed.jstree Event', function(e, data) { 
     var i, j, r = []; 
     var relatedIndustryID = []; 
     categoryBEArray.RelatedIndustries = []; 
     // add below line 
     var parentNode = $('#DivIndustryCategoryTree').jstree().get_top_selected(true)[0].text; 
     //edit below line 
     for (i = 0, j = data.selected.length; i < j && data.selected[i]).text!= parentNode; i++) { 
      var indSelectedObj = {}; 
      indSelectedObj.ProductID = ProductID; 
      indSelectedObj.ProductPageID = ProductPageID; 
      indSelectedObj.Language = Language; 
      r.push(data.instance.get_node(data.selected[i]).text); 
      indSelectedObj.IndustryID = parseInt(data.instance.get_node(data.selected[i]).id); 
      relatedIndustryID.push(parseInt(data.instance.get_node(data.selected[i]).id)); 
      categoryBEArray.RelatedIndustries.push(indSelectedObj); 
     } 
     selectedData = r; 
     selectedDataID = relatedIndustryID; 
     categoryBEArray.RelatedServices.push(null); 
     categoryBEArray.ID = ProductID; 
    });