2016-09-05 1 views
0

나는 5 레벨의 트리가 있지만 자식 만 사용자 정의 ID를 가지고 있습니다.Jstree 체크 박스, 자식 ID 만 가져 오기

<div id="jstree-naf"> 
    <ul> 
     {% for key, naf in json["naf"] %} 
     <li>{{ key }} 
      <ul> 
      {% for key2, naf2 in naf %} 
       <li>{{ key2 }} 
        <ul> 
        {% for key3, naf3 in naf2 %} 
         <li>{{ key3 }} 
          <ul> 
          {% for key4, naf4 in naf3 %} 
           <li>{{ key4 }} 
            <ul> 
            {% for key5, naf5 in naf4 %} 
             <li id="{{ key5 }}">{{ naf5 }}</li> 
            {% endfor %} 
            </ul> 
           </li> 
          {% endfor %} 
          </ul> 
         </li> 
        {% endfor %} 
        </ul> 
       </li> 
      {% endfor %} 
      </ul> 
     </li> 
     {% endfor %} 
    </ul> 
</div> 

그러나 내가 무엇인가를 선택할 때, 나는 아이들의 이드뿐만 아니라 부모의 자동 ID도 얻습니다.

["58.11Z", "j2_1212"] 

내 ID는 "58.11Z"이지만, "j2_1212은"jstree에 의해 자동으로 생성 자신의 직접 부모의 하나이지만, 나는 그것을 필요하지 않습니다.

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

$('#jstree-naf').on("changed.jstree", function (e, data) { 
    console.log(data.selected); 
}); 

답변

2

여기의 요구 사항에 따라 체크 박스 플러그인을 구성해야합니다. 여기를 참조하십시오. jsTree Checkbox plugin config options. 당신의 요구 사항은

당신은 $.jstree.defaults.checkbox.three_state거짓$.jstree.defaults.checkbox.cascade (기본값은 true)를 아래로 까지// 미정으로 설정해야합니다. 당신이 계단식하지 않으려는 경우 '$의 .jstree.defaults.checkbox.cascade'

This setting controls how cascading and undetermined nodes are applied.

If 'up' is in the string - cascading up is enabled,

if 'down' is in the string - cascading down is enabled,

if 'undetermined' is in the string - undetermined nodes will be used.

If three_state is set to true this setting is automatically set to 'up+down+undetermined'. Defaults to ''

의 jstree 사이트에서 언급 한 바와 같이

은 '당신이 폭포 옵션을 설정할 수 있습니다, 사용 가능합니다 down + undetermined '

계단식 연결을 계속 사용하도록 설정하고 선택한 자식 요소 만 계속 가져옵니다. get_bottom_selected 방법을 사용하십시오.

$('#jstree-naf').jstree().get_bottom_selected() 
+0

나는 계단식 (그래서 내가 원하는 모든 아이들 (가장 낮은 수준)) 원하지만, 그 사용 [get_bottom_selected]에 대한 부모의 ID – Macbernie

+0

(https://www.jstree.com 필요하지 않습니다/api/# /? f = get_bottom_selected ([full])) 메소드. 이것은 부모를 제외한 선택된 노드를 반환합니다. –

+0

Thanks @ Chetan, 어떻게 작동합니까? console.log (data.get_bottom_selected); undefined를 반환합니다 :/ – Macbernie

0

은 항상 나중에 다음 부모 노드를 첫 번째 항목으로 선택된 노드를 반환하고 있는가 : 여기

내 기본 초기화입니까? 그렇다면 첫 번째 항목을 가져 가면됩니다.

$('#jstree-naf').on("changed.jstree", function (e, data) { 
    console.log(data.selected[0]); 
});