2013-02-27 3 views
0

부모 노드간에 리프 노드를 끌어다 놓을 수있는 간단한 2 레벨 jstree가 있습니다. 부모 노드가 리프 하나만 포함하면 리프를 끌 때 부모 노드는 리프 노드가됩니다. 이 문제를 방지하고 싶습니다만, 어떻게하는지 알려주는 문서를 찾을 수 없습니다.jstree : 부모 노드가 리프 노드가되지 못하도록

나는 무슨 일이 일어나고 있는지 그림으로 표현했습니다. 그림 2에서 부모 노드 "Proctor"는 외관과 관련하여 리프 노드라고 생각합니다. 항목을 끌어다 놓을 수 있고 다시 잎이 아닌 노드가됩니다. 상위 노드가 비어 있는지 여부에 관계없이 그룹 아이콘 모양을 유지하면이 인터페이스에 더 많은 의미가 있습니다. 또한 트리가 처음 열리면 빈 부모 노드가 그룹 아이콘과 함께 나타납니다 (이는 좋은 것입니다).

enter image description here

을 여기에 내가 프록터에서 참가자 바울 Postler를 드래그 한 후 트리입니다 : 내가 한 방법을 알아 냈

enter image description here

답변

2

이 처음 나타나는 여기

트리입니다 해라. 그러나 그것은 특히 깨끗하지 않다. 다른 답변은 크게 감사 할 것입니다. 다음은 바운드 move_node.jstree 코드에 추가 한 내용입니다.

var oldParent = document.getElementById(
    (oldIsUnassigned) ? "Unassigned" : "P" + oldRoleId); 
var className = oldParent.className.replace("jstree-leaf", ""); 
if (className.indexOf("jstree-drop") < 0) className += " jstree-drop"; 
if (className.indexOf("jstree-open") < 0) className += " jstree-open"; 
oldParent.className = className; 
관련 문제