2017-05-12 9 views
0

jstree javascript 라이브러리 https://www.jstree.com/을 사용하여 트리를 만듭니다. 현재 노드 바로 다음에 형제로 새 노드를 만들어야합니다.하나의 노드 (jstree) 바로 뒤에 노드 추가

  • Elem 모델 1
  • Elem 모델 2
  • Elem 모델 난 Elem 모델이 새로운 노드를 클릭하면 내 포인트 3

가 Elem 모델 2.5 말 3

Elem 모델 2 Elem 모델 사이에 추가

때문에 결과 : -

  • Elem 모델 1
  • Elem 모델이
  • Elem 모델 2.5
  • Elem 모델 3 내 현재 코드

이 새에 의해 $(".appendTree").jstree('create_node', CurrentNode, html, 'last');

는, 노드는 항상 거기에 end.is 처리 할 수있는 API 또는 해결 방법에 추가 이??

+0

문제를 해결 했습니까? –

+0

네, jstree.create method.There에 몇 가지 변경 사항이 있습니다. "after"메서드가 있습니다. 다음 프로 시저에 따라 메서드를 변경했습니다. 먼저 현재 노드의 인덱스를 찾은 다음 인덱스 + 1 위치에 새 노드를 만들었습니다. :) –

답변

0

현재 폴더에서 선택한 노드의 현재 색인을 알아 낸 다음 last 대신 create_node 개의 색인으로 색인을 전달해야합니다. 아래 코드를 참조하십시오. 데모 - Fiddle Demo을 확인하십시오.

$('.appendTree') 
     .jstree({ 
     core : { 
      check_callback : true, 
      data : coredata 
     } 
    }) 
    .on("select_node.jstree", function (e, data) { 
     var $parent = $('#'+data.node.id).parent(); 
       var index = $parent.children().index($('#'+data.node.id)) +1; 

     if(data.node.parent === '#') { 
      $parent = '#'; 
     } 

     $(".appendTree").jstree('create_node', $parent, 'new node', index); 
    });